当前位置: 移动技术网 > IT编程>数据库>Mysql > mysql 批量插入数据如何防止重复插入

mysql 批量插入数据如何防止重复插入

2020年07月18日  | 移动技术网IT编程  | 我要评论
mysql批量插入数据时,会存在重复数据的可能.可以通过1)数据库加联合索引2)修改sql,忽略重复的数据,防止数据库报错1.CREATE TABLE `merchantBlackList` ( `id` int(5) NOT NULL AUTO_INCREMENT, `createTime` datetime NOT NULL, `bankId` int(10) DEFAULT NULL COMMENT '银行id', `merchantSn` varchar(20) COLLA

mysql批量插入数据时,会存在重复数据的可能.
可以通过1)数据库加联合索引
2)修改sql,忽略重复的数据,防止数据库报错
1.


CREATE TABLE `merchantBlackList` (
  `id` int(5) NOT NULL AUTO_INCREMENT,
  `createTime` datetime NOT NULL,
  `bankId` int(10) DEFAULT NULL COMMENT '银行id',
  `merchantSn` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '商户编号',
  PRIMARY KEY (`id`),
  UNIQUE KEY `bankId_merchantSn` (`bankId`,`merchantSn`)//联合索引
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2.

<insert id="batchInsert"  parameterType="ArrayList">
        INSERT INTO merchantBlackList(createTime,bankId,merchantSn)
        VALUES
        <foreach collection="list" item="item" index="index" separator="," >
            (#{item.createTime},#{item.bankId},#{item.merchantSn})
        </foreach>
        ON DUPLICATE KEY UPDATE
        bankId=VALUES(bankId),
        merchantSn=VALUES(merchantSn);
    </insert>

本文地址:https://blog.csdn.net/java_zhulinghai/article/details/107404863

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网