select into from 和 insert into select 都是用来复制表,两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建。insert into select from 要求目标表存在。
下面分别介绍两者语法
INSERT INTO SELECT 语句
语句形式为:
Insert into Table2(field1,field2,...) select value1,value2,... from Table1
注意地方:
(1)要求目标表 Table2 必须存在,并且字段 field,field2... 也必须存在
(2)注意 Table2 的主键约束,如果 Table2 有主键而且不为空,则 field1, field2... 中必须包括主键
(3)注意语法,不要加 values,和插入一条数据的 sql 混了,不要写成 :
Insert into Table2(field1,field2,...) values (select value1,value2,... from Table1)
(4)由于目标表 Table2 已经存在,所以我们除了插入源表 Table1 的字段外,还可以插入常量。
完整实例:
SELECT INTO FROM 语句
语句形式为:SELECT vale1, value2 into Table2 from Table1
要求目标表 Table2 不存在,因为在插入时会自动创建表 Table2,并将 Table1 中指定字段数据复制到 Table2 中 。
完整实例: