解决MYSQL批量插入时,UUID_SHORT出现了1062 -Duplicate entry ‘xxx‘ for key ‘PRIMARY‘

2023-05-16

1.问题描述

MYSQL批量插入时,使用UUID_SHORT出现了1062 -Duplicate entry ‘xxx’ for key ‘PRIMARY’
在这里插入图片描述

2.场景描述:

在测试环境可以正常插入,但是去到生产就失败了,这种需要怎么处理?

2.1方式一:

答:如果批量插入的数据,可以拿到的话,可以尝试先在测试环境生成数据后,转为SQL语句,并拿到生产去执行,这样就可以解决该问题。如下图:通过工具将在测试环境生成的数据,导为SQL,并到生产执行。
在这里插入图片描述
在这里插入图片描述

2.2方式二:

答:大多数时候,我们都是不可能接触到生产环境的数据的,但是出现【主键重复】会导致我们无法完成当前任务,那就可以考虑用以下方法,也推荐用该方法,而不是2.1。

(1)SQL如下,主要自定义了一个名为’number’的变量,每次insert之前,主键id值都+1

set @number = 1;
INSERT INTO '你的表名'
SELECT @number := @number+1 AS id,CONCAT('解决MySQL UUID_SHORT批量生成主键重复问题:',u.name) 
FROM '你的表名' AS `u`

(2)原表数据:
在这里插入图片描述
(3)执行成功截图:

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决MYSQL批量插入时,UUID_SHORT出现了1062 -Duplicate entry ‘xxx‘ for key ‘PRIMARY‘ 的相关文章

随机推荐