on duplicate key 提示 1052 错误

从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)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值