场景:

前段时间在清洗数据时,使用 insert into  select 语法做批量新增的时候,设置目标表的主键id为 uuid,使用mysql语法 Replace(uuid(), '-', '') 获得uuid作为目标表主键值。但在最终执行语句时,mysql一直报主键重复,后改成查询语句时,发现批量新增时,uuid只会生成一次,导致目标表中的所有主键id都是一样,抛出主键异常的错误。

为了解决这个问题,在网上搜索相关方案后,找到了大佬@湖城彭于晏的解决方法,使用 md5(uuid())的方式,将生成的uuid()每次使用md5()重新加密一次,最终形成不同的主键id。

在征得大佬@湖城彭于晏的同意下,转载大佬的文章,以下为大佬的文章原文,在此感谢大佬的帮助。

文章链接:https://blog.csdn.net/weixin_44190087/article/details/109772684

原文:

问题描述:

  1. 通过select replace(uuid(), ‘-’, ‘’) , 生成的uuid部分或者全部重复,提示Duplicate entry ‘xxx’ for key 'PRIMARY’主键重复。(可能是navicat执行顺序的问题)
INSERT INTO t_r_org_route ( org_route_id, org_id, route_id ) SELECT
REPLACE(UUID(),'-',''),deptId,id
FROMt_cust_table;
  1. select uuid() ,生成的uuid不重复。但是有“-”且长度太长,不符合要求。

解决方法:

修改为:select md5(uuid())

INSERT INTO t_r_org_route ( org_route_id, org_id, route_id ) SELECT
MD5(UUID()),deptId,id
FROMt_cust_table;

【转】解决mysql 使用 select into或inert into select 批量插入时id使用UUID重复问题相关推荐

  1. 解决mysql 数据迁移过程中使用 select into或inert into select 批量插入时id使用UUID重复问题(已解决)

    INSERT INTO xx ( ) SELECT MD5(CONCAT(@rownum:=@rownum+1,UNIX_TIMESTAMP())), '这里是字段' FROM 表,(SELECT @ ...

  2. MySql批量插入时,如何不插入重复的数据

    以下文章来源方志朋的博客,回复"666"获面试宝典 温故而知新 业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入 那么问题来了,是不 ...

  3. mysql查询每个id的前10条数据_解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据...

    我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据. 好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的 ...

  4. mysql max嵌套select_使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题

    网上也有解决方案 有的有瑕疵 有的较复杂(mysql没有分析函数,可以使用变量实现) select sumScoreValue,studentid,studentName from sc_studen ...

  5. 解决Mysql:unrecognized service错误的方法(CentOS)附:修改用户名密码

    2019独角兽企业重金招聘Python工程师标准>>> service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误 ...

  6. mysql select语法_MySQL SELECT语法(一)SELECT语法详解

    SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...

  7. 解决MYSQL大表问题-实战篇(二)

    #首先上表结构 CREATE TABLE `sys_history` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`did` bigint(20) NOT NUL ...

  8. 如何解决MySQL连接超时关闭

    最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到M ...

  9. 3分钟解决MySQL 1032 主从错误(转)

    转自  https://blog.51cto.com/suifu/1845457 3分钟解决MySQL 1032主从错误 Part1:写在最前 1032错误----现在生产库中好多数据,在从库误删了, ...

最新文章

  1. 图灵机器人api接入c语言,apikey创建接入图灵机器人
  2. Web后台服务开发——数据库查询之引入TypeORM
  3. sysfs cannot create duplicate filename问题
  4. MySQL 也替换了master、slave
  5. 光纤收发器按照网管怎么分类
  6. 【MySQL】MySQL STRAIGHT JOIN 使用案例以及简介
  7. 安全云盘项目(三):3.1 Qt的工具_MVD架构和信号槽原理分析
  8. win7服务器未能登入,Win7提示profile服务未能登录,无法在系统中创建怎么办
  9. [转载]梯度下降小结
  10. 线上python课程一般多少钱-排名前十的python零基础编程在线网课一对一费用多少钱...
  11. 二叉树前序中序后序javascript_详解二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)...
  12. [Vue warn]: Error in render: “TypeError: Cannot read properties of undef
  13. Jlink接口引脚定义
  14. 使用NRF52xx sniffer抓取BLE包
  15. 网络域名之一级域名与二级域名
  16. hp450 g8摄像头打开后黑屏
  17. dhcp服务器修改网关地址,5.1.9 配置DHCP客户端网关地址
  18. 程序员心理小测试:你是否患上抑郁症?
  19. OSCP靶场6-Stapler(用户收集、wordpress、SMB、mysql上传文件执行反弹shell、用户历史命令)
  20. Huggingface Transformers库学习笔记(二):使用Transformers(上)(Using Transformers Part 1)

热门文章

  1. html jq页面跳转页面,jQuery实现页码跳转式动态数据分页
  2. jq跳转参数,获取链接参数
  3. 3年自动化测试经验,25K都面不上?这么坑?
  4. 碳焙浓香型铁观音,为何在北方市场被严重冷落
  5. 动量风险因子 matlab,期货市场存在较强的时间序列动量效应
  6. EN 544建筑覆盖物沥青瓦—CE认证
  7. 纵横网络靶场社区-wp
  8. crontab -e修改默认编辑器
  9. 二级C语言操作例题(二)
  10. Python3爬取OpenStreetMap平台的城市道路交通网数据