从A表中读取数据写到B表中,可以用一个简单的sql语句来实现:
A表中的字段是
a b c
1 2 3
B表中的字段是
d e
我想将A表中的b,c值写入的B表中的d,e
insert into B (d,e)
select b,c from A
同样道理,我们来研究一下 ON DUPLICATE KEY 的用法
ON DUPLICATE KEY 使用的条件是必须有唯一主键
同样的B表,这时候B中数据
d e
2 4
假如d是主键,那么在执行insert时候就会出现错误,而我又想将e的值该为A表中的数据,那我们的sql语句是否可以这样
insert into B(d,e) select b,c from A on duplicate key update e=c
因为在update中需要一个结果集
insert into B(d,e)
select b,c from A
on duplicate key update e=values(c)