在web开发中,我们经常需要将一个表的数据插入(复制)到另一个表中,有时还需要指定导入字段。设置只需要导入目标表中不存在的记录。虽然这些都可以通过在程序中拆分成简单的sql来实现,但是使用一条sql会节省很多代码。我就以mysql数据库为例来一一讲解:
1.如果两个表的字段是一致的,并且您想要插入所有数据,您可以使用此方法:
进入目标表SELECT * FROM源表;insert test select * from insert test 2;
2.如果您只想导入指定的字段,可以使用以下方法:
插入目标表(字段1,字段2,...)选择字段1、字段2,...来自源表;(此处字段必须一致)插入到插入测试2 (id)从插入测试2中选择id;
3.如果只需要导入目标表中不存在的记录,可以使用以下方法:
插入目标表
(字段1,字段2,...)
选择字段1、字段2、...
来自不存在的源表
(select * FROM target table
where target table。比较字段=源表。比较字段
1 gt。插入多条记录:
insert into insertTest2
(id,name)select id,name from insert test where not exist(select * from insert test 2 where insert test 2 . id = insert test . id);
2 gt。插入记录:
插入到insertTest
(id,name)
SELECT 100, # 39;刘德华 # 39;FROM dual
WHERE not exist(select * FROM insert test
WHERE insert test . id = 100);