我正在尝试INSERT INTO使用来自另一个表的输入来创建一个表。尽管这对于许多数据库引擎来说是完全可行的,但我似乎总是很难记住当时SQL引擎(MySQL、Oracle、SQL Server、Informix和DB2)的正确语法。
INSERT INTO
SQL
尝试:
INSERT INTO table1 ( column1 ) SELECT col1 FROM table2
这是标准的 ANSI SQL,应该适用于任何 DBMS
它绝对适用于:
应该可以正常工作,您还可以拥有多个列和其他数据:
INSERT INTO table1 ( column1, column2, someInt, someVarChar ) SELECT table2.column1, table2.column2, 8, 'some string etc.' FROM table2 WHERE table2.ID = 7;
我只在 Access、SQL 2000/2005/Express、MySQL 和 PostgreSQL 中使用过这种语法,所以应该涵盖这些。它也应该适用于 SQLite3。