insert into select的实际用法
insert into select语句
语句形式为:insert into table2(field1,field2,...) select value1,value2,... from table1
或者:insert into table2 select * 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)
由于目标表table2已经存在,所以我们除了插入源表table1的字段外,还可以插入常量。示例如下:
业务背景:在部分字段有变化的情况下,需要把部分数据复制插入到表里;
insert into marketing_jump_manage (id,jump_channel,jump_class, state, creat_time, update_time, creat_name, update_name, show_state, position_name, position_code, component_id, component_name, custom, jump_name,jump_channel_name)
select seq_subset_message.nextval ,b.* from
(
select '60',jump_class, state, creat_time, update_time, creat_name, update_name, show_state, position_name, position_code, component_id, component_name, custom, jump_name, 'xx渠道'
from marketing_jump_manage c
where c.jump_channel='2'
)b;
分析sql:
1.insert语句全部字段
2.自增id 通过序列 seq_subset_message.nextval 查询
3.部分变化字段可以 直接写死,如上sql '60', 'xx渠道'
推荐阅读
-
CASE WHEN 及 SELECT CASE WHEN的用法
-
Oracle关于不能直接使用序列到insert select的问题
-
实际项目开发过程中常用C语言函数的9大用法
-
insert into select的实际用法
-
struts2的select标签用法实例分析
-
sql Set IDENTITY_INSERT的用法
-
SQL基础语法的单表操作 select|insert|update|delete(增删改查) 简单使用
-
insert和select结合实现"插入某字段在数据库中的最大值+1"的方法
-
mysql学习笔记之完整的select语句用法实例详解
-
简介Go语言中的select语句的用法