mysql 批量插入数据如何防止重复插入
程序员文章站
2022-07-08 10:18:29
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
下一篇: 贝店以精细化平台运营实现人货场重构
推荐阅读
-
数据库批量sql插入语句动态获取最新自增id问题如何解决?
-
C#.NET中如何批量插入大量数据到数据库中
-
用shell脚本在mysql表中批量插入数据的方法
-
sql语句如何实现插入不重复的20位字符串(mysql)?
-
mysql大批量插入数据的4种方法示例
-
MYSQL批量插入数据-存储过程
-
php往mysql中批量插入数据实例教程
-
Node.js下向MySQL数据库插入批量数据的方法
-
C# ASP.NET+MySQL数据库命名了1个long字段,和C#的保留字重名,并且和MySQL数据库的关键字重名,如何用Parameters.AddWithValue方法插入新记录到数据库
-
MYSQL批量插入数据的实现代码第1/3页