SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 23.09.2010 13:05:53

kapucin
Участник
Зарегистрирован: 23.09.2010
Сообщений: 2

Создание временных таблиц

Пожалуйста, помогите найти решение одной проблемки:
я могу создавать временную таблицу, в которой 2 поля известны (заполнены), а
1 поле (последнее) надо заполнить через update, т.е. изначально оно пустое.
Я делаю так,

create table #tab1 (
id int,
fio varchar(50),
dolg varchar(50)
)
insert into #tab1
select id, fio, null from sotrudnic
update #tab1 set dolg=(select namedolg from dolgnost,sotrudnic
                                 where dolgnost.id=sotrudnic.id)
select * from #tab

и это работает.
Подскажите можно ли создать временную таблицу и сделать то же самое, используя
не create table, a используя конструкцию select ... into ... from, причем в
первых двух полях данные берутся из таблицы sotrudnic, а последнее поле сначала
имеет значение NULL и только потом заполняется при помощи update?

Неактивен

 

#2 23.09.2010 13:23:44

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Создание временных таблиц

Нет.
Единственный вариант создать временную таблицу - create temporary table

Неактивен

 

#3 23.09.2010 14:00:04

kapucin
Участник
Зарегистрирован: 23.09.2010
Сообщений: 2

Re: Создание временных таблиц

Я понимаю,но если я могу написать

select id, fio, NULL dolg into #tab1
from sotrudnic
update #tab1 set dolg=(select namedolg from dolgnost,sotrudnic
                                 where dolgnost.id=sotrudnic.id)
select * from #tab

Будет ошибка только в update, но не в select, т.к. MySQL считает dolg типом int, а я
присваиваю значение типа varchar.
можно ли как-нибудь сделать его типом varchar???

Отредактированно kapucin (23.09.2010 14:01:57)

Неактивен

 

#4 23.09.2010 14:26:17

avgsoft
Завсегдатай
Зарегистрирован: 23.09.2010
Сообщений: 36

Re: Создание временных таблиц

update некорректно записан.
исходя из того, что было представлено как условие, скорее всего вы имели ввиду
update #tab1 join dolgnost on dolgnost.id = #tab1.id set tab1.dolg = dolgnost.name

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson