Как поместить результат выборки в таблицу?
Код:
SELECT a,b,c FROM t_table WHERE a>0 LIMIT 100;
Как мне через SQL-запрос вставить результат этой выборки в таблицу t_table2 с полями a,b,c того же типа, что и в запросе выше?
Заранее спасибо.
insert into table_new select * from table_old
не нафиг ничего не нужно: делай так create table название_таблицы as SELECT a,b,c FROM t_table WHERE a>0 LIMIT 100;
Код:
select into...
позволяет создать на основе выбранной таблицы
Цитата: kot_
позволяет создать на основе выбранной таблицы
Уверен?
Цитата: kot_
Код:
select * into table2 from table1 where ...
Хренассе! Всю жизнь считал, что select into используется только для выборки в переменные. Намудрили микрочлены - это точно не стандарт. Впрочем, для их сервера - решение, согласен. ;)
Это не стандарт - но по сути чем отличается таблица от переменной в представлении сервера?
Есть такое понятие - транзакционная целостность. Согласно ей, запрос на выборку данных (select) не может изменять данные в базе никоим образом, иначе концепция транзакций летит в тартатары. Это отражено синтаксически в стандарте: select into изменяет локальные переменные, т. е. нечто вне базы, а insert по select-у или create as select явно задействуют операторы изменения данных, причём изменения эти выполняются уже после select-а.
В данном случае изменения также выполняются после select. Кроме того, еще раз обращаю внимание - таблица в данном случае используется в качестве переменной. И и принцип целостности транзакции при этом никак не нарушается. ИМХО
Цитата: kot_
таблица в данном случае используется в качестве переменной
Об этом я как-то не подумал. 5! ;)