java技术--mysql中插入数据时主键重复的解决方案

1.使用MySQL设置主键时需要注意以下问题:

(1)如果主键类型是int,可以直接设置主键自增
(2)如果主键类型不是int,需要处理,否则将会报错:Duplicate entry '' for key 'PRIMARY'

2.该报错问题是插入数据表中遇到键重复,解决方案如下:

(1)IGNORE
      例如:INSERT IGNORE INTO Table_name(..) VALUES();
      <1>使用IGNORE,如果插入的记录中存在重复值会忽略重复值的该记录行,不影响其他行的插入
(2)REPLACE
      例如:REPLACE INTO Table_name() VALUES()      
      <1>使用replace当插入的记录遇到主键或者唯一重复时先删除表中重复的记录行再插入
(3)ON DUPLICATE KEY UPDATE NAME1=VALUES(ID)+1      
      例如;INSERT TO Table_name() VALUES(1,1),(1,2) ON DUPLICATE KEY UPDATE NAME1=NAME1+1
      <1>ON DUPLICATE KEY UPDATE后面使用VALUES指的是插入记录的值,而不使用VALUES指的是表的自身值。
      <2>其后执行的UPDATE更新的记录是WHERE重复的主键或唯一键的ID。

3.以上三种方法均支持标准的INSERT语法

(1)INSERT INTO…VALUES
(2)INSERT INTO…SET
(3)INSERT INTO…SELECT
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值