首页 >

mysql批量插入生成uuid重复问题 |mysql优化 参数配置

ios mysql git,c 使用 mysql 代码,在aix执行MySQL脚本,mysql传输数据加密软件,统计mysql表行数,mysql优化 参数配置mysql批量插入生成uuid重复问题 |mysql优化 参数配置
INSERT INTO `table` (`id`, `uuid`) VALUES (1, 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8'),(2, 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8'),(3, 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8');

造成这个问题的根本原因是在批量插入的时候,使用了相同的uuid进行插入。解决这个问题的方法有两种:

1. 在插入之前先判断uuid是否已经存在于数据库中,如果存在则重新生成uuid。

INSERT INTO `table` (`id`, `uuid`) VALUES 
(1, IF((SELECT COUNT(`id`) FROM `table` WHERE `uuid`='b311bf28-4a12-4dd1-94b6-a3d6f964a6f8')>0, UUID(), 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8')),
(2, IF((SELECT COUNT(`id`) FROM `table` WHERE `uuid`='b311bf28-4a12-4dd1-94b6-a3d6f964a6f8')>0, UUID(), 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8')),
(3, IF((SELECT COUNT(`id`) FROM `table` WHERE `uuid`='b311bf28-4a12-4dd1-94b6-a3d6f964a6f8')>0, UUID(), 'b311bf28-4a12-4dd1-94b6-a3d6f964a6f8'));

2. 在MySQL中使用UUID_SHORT()函数来生成uuid,这个函数生成的uuid是64位的,不会重复。使用这个函数需要注意,因为uuid_short是随机生成的,所以在多次生成的时候也有可能会重复。

INSERT INTO `table` (`id`, `uuid`) VALUES (1, UUID_SHORT()),(2, UUID_SHORT()),(3, UUID_SHORT());

总之,在使用MySQL批量插入uuid的时候,应该注意保证uuid的唯一性,避免重复插入相同的uuid。以上两种方法可以帮助解决这个问题,选择哪种方法需要根据具体情况进行取舍。


mysql批量插入生成uuid重复问题 |mysql优化 参数配置
  • mysql数据库单表数据 |rpm 安装mysql 集群
  • mysql数据库单表数据 |rpm 安装mysql 集群 | mysql数据库单表数据 |rpm 安装mysql 集群 ...

    mysql批量插入生成uuid重复问题 |mysql优化 参数配置
  • mysql此处省略是什么意思 |mysql数据库中的text
  • mysql此处省略是什么意思 |mysql数据库中的text | mysql此处省略是什么意思 |mysql数据库中的text ...

    mysql批量插入生成uuid重复问题 |mysql优化 参数配置
  • mysql error 1364 |mysql sql语句 参数
  • mysql error 1364 |mysql sql语句 参数 | mysql error 1364 |mysql sql语句 参数 ...