将一张表的一些数据复制到另一张表中使用insert语句是可以带where条件的。用法如下:
insert into table select * from table where ... 或者
insert into table_name( v1,v2,v3) VALUES (select a,b,c from 查询表 where 条件)。
扩展资料
INSERT INTO SELECT语句是将一个结果集插入到一个表中。
它的语法形式是:Insert into Table2(field1,field2,…) select value1,value2,… from Table1
该语法的限制条件是:
1、Table2必须存在,并且字段field1、field2…也必须存在;
2、如果Table2有主键而且不为空,并且没有设置自增长,则 field1, field2…中必须包括主键。
3、field与value的数据类型要对应上。
一般大家不明白insert语句是否可以带where条件,主要是因为有insert两种情况,
下面分开分析:
insert into table values(...) where ...
注意:这种用法,语法上是不支持的.
至于 insert into select * from table where ...
以及
insert into table_name( v1,v2,v3) VALUES (select a,b,c from 查询表 where 条件)
这种用法没有问题.
2013-05-11