我试图将一个表的所有值插入另一个表.但insert语句接受值,但我希望它接受来自initial_Table的select*.这可能吗?
insert语句实际上有一个语法来做到这一点.如果指定列名而不是选择"*",则会更容易:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz) SELECT Foo, Bar, Fizz, Buzz FROM initial_table -- optionally WHERE ...
我最好澄清这一点,因为出于某种原因,这篇文章得到了一些低票.
INSERT INTO ... SELECT FROM语法适用于您插入的表(上例中的"new_table")已存在的情况.正如其他人所说,SELECT ... INTO语法适用于您希望在命令中创建新表的时间.
您没有指定是否需要将新表创建为命令的一部分,因此如果目标表已存在,则INSERT INTO ... SELECT FROM应该没有问题.
试试这个:
INSERT INTO newTable SELECT * FROM initial_Table
您可以使用子查询插入,如下所示:
INSERT INTO new_table (columns....) SELECT columns.... FROM initial_table where column=value
从这里:
SELECT * INTO new_table_name [IN externaldatabase] FROM old_tablename