使用场合
一个表中数据使用另外一个表中获取的或者一个表的数据增加一条。
insert into select
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。目标表中任何已存在的行都不会受影响。
SQL INSERT INTO SELECT 语法
- 从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1[where];
[]--表示可以使用where来确定条件。
举例如下:
insert into
menu_tree
select * from menu_tree
where sid='6';
- 只复制希望的列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_value(s)
FROM table1;
column_name(s)--表示表中存在的列,column_value(s)--表示这些列对应的值。
举例如下:
insert into menu_tree(SID,CODE,NAME,ORDER_VAL)
select '10','10','一个部','10' from menu_tree where sid = '6'
select insert into
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
注意:
MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT 。
SQL SELECT INTO 语法
- 复制所有的列插入到新表中:
SELECT *
INTO newtable [IN externaldb]
FROM table1;
sqlserver中已测试,Oracle中未做测试。oracle中,这个select into不能在语句中执行,必须要放到存储过程,函数等等里边执行。
- 只复制希望的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
sqlserver中已测试,Oracle中未做测试。oracle中,这个select into不能在语句中执行,必须要放到存储过程,函数等等里边执行