我正在尝试将一个表的所有值插入到另一个表中。但是insert语句接受值,但我希望它接受initial_Table中的select *。这个是可能的吗?
发布于 2009-02-23 03:26:03
insert语句实际上有这样做的语法。不过,如果您指定列名而不是选择"*“,则会容易得多:
INSERT INTO new_table (Foo, Bar, Fizz, Buzz)
SELECT Foo, Bar, Fizz, Buzz
FROM initial_table
-- optionally WHERE ...
我最好澄清这一点,因为出于某种原因,这篇文章受到了一些反对票的反对。
插入到...SELECT FROM语法用于当您要插入到的表(在上面的示例中为“new_table”)已经存在时。正如其他人所说,选择...INTO语法适用于要在命令中创建新表的情况。
您没有指定是否需要在命令中创建新表,因此INSERT INTO ...如果您的目标表已经存在,SELECT FROM应该可以。
发布于 2010-04-21 17:35:06
试试这个:
INSERT INTO newTable SELECT * FROM initial_Table
发布于 2011-08-22 10:08:39
可以使用子查询插入,如下所示:
INSERT INTO new_table (columns....)
SELECT columns....
FROM initial_table where column=value
https://stackoverflow.com/questions/576441
复制相似问题