【转】解决mysql 使用 select into或inert into select 批量插入时id使用UUID重复问题
场景:
前段时间在清洗数据时,使用 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
原文:
问题描述:
- 通过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;
- 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重复问题相关推荐
- 解决mysql 数据迁移过程中使用 select into或inert into select 批量插入时id使用UUID重复问题(已解决)
INSERT INTO xx ( ) SELECT MD5(CONCAT(@rownum:=@rownum+1,UNIX_TIMESTAMP())), '这里是字段' FROM 表,(SELECT @ ...
- MySql批量插入时,如何不插入重复的数据
以下文章来源方志朋的博客,回复"666"获面试宝典 温故而知新 业务很简单:需要批量插入一些数据,数据来源可能是其他数据库的表,也可能是一个外部excel的导入 那么问题来了,是不 ...
- mysql查询每个id的前10条数据_解决 MySQL 比如我要拉取一个消息表中用户id为1的前10条最新数据...
我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据. 好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的 ...
- mysql max嵌套select_使用嵌套select子式 解决mysql不能叠加使用如max(sum())的问题
网上也有解决方案 有的有瑕疵 有的较复杂(mysql没有分析函数,可以使用变量实现) select sumScoreValue,studentid,studentName from sc_studen ...
- 解决Mysql:unrecognized service错误的方法(CentOS)附:修改用户名密码
2019独角兽企业重金招聘Python工程师标准>>> service mysql start出错,mysql启动不了,解决mysql: unrecognized service错误 ...
- mysql select语法_MySQL SELECT语法(一)SELECT语法详解
SELECT的语法如下: SELECT[ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT ...
- 解决MYSQL大表问题-实战篇(二)
#首先上表结构 CREATE TABLE `sys_history` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`did` bigint(20) NOT NUL ...
- 如何解决MySQL连接超时关闭
最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到M ...
- 3分钟解决MySQL 1032 主从错误(转)
转自 https://blog.51cto.com/suifu/1845457 3分钟解决MySQL 1032主从错误 Part1:写在最前 1032错误----现在生产库中好多数据,在从库误删了, ...
最新文章
- 图灵机器人api接入c语言,apikey创建接入图灵机器人
- Web后台服务开发——数据库查询之引入TypeORM
- sysfs cannot create duplicate filename问题
- MySQL 也替换了master、slave
- 光纤收发器按照网管怎么分类
- 【MySQL】MySQL STRAIGHT JOIN 使用案例以及简介
- 安全云盘项目(三):3.1 Qt的工具_MVD架构和信号槽原理分析
- win7服务器未能登入,Win7提示profile服务未能登录,无法在系统中创建怎么办
- [转载]梯度下降小结
- 线上python课程一般多少钱-排名前十的python零基础编程在线网课一对一费用多少钱...
- 二叉树前序中序后序javascript_详解二叉树遍历(前序、中序、后序、层次遍历、深度优先、广度优先)...
- [Vue warn]: Error in render: “TypeError: Cannot read properties of undef
- Jlink接口引脚定义
- 使用NRF52xx sniffer抓取BLE包
- 网络域名之一级域名与二级域名
- hp450 g8摄像头打开后黑屏
- dhcp服务器修改网关地址,5.1.9 配置DHCP客户端网关地址
- 程序员心理小测试:你是否患上抑郁症?
- OSCP靶场6-Stapler(用户收集、wordpress、SMB、mysql上传文件执行反弹shell、用户历史命令)
- Huggingface Transformers库学习笔记(二):使用Transformers(上)(Using Transformers Part 1)