mysql生成uuid重复解决方案
| 数据库
评论 2 | 点赞 0 | 浏览 529

有时候会遇到这样的场景:往表里加一个uuid字段,并给这些数据生成uuid,且去掉“-”

于是写出这样一条sql语句:

update table set uuid = replace(uuid(), '-', '')

执行后发现uuid都是重复的。

直接uuid()没有问题,replace(uuid(), '-', '')会重复

可以先生成uuid放到临时表中,再去update,代码如下:

UPDATE table
SET uuid = (
	SELECT REPLACE
		( uid, '-', '' )
	FROM
		( SELECT UUID() AS uid, id AS tid FROM table WHERE uuid = '' OR uuid IS NULL ) t 
	WHERE
		id = t.tid 
	) 
WHERE
	uuid = '' 
	OR uuid IS NULL;
本文作者:不是好驴
本文链接:https://www.baddonkey.cn/detail/25
版权声明:原创文章,允许转载,转载请注明出处

高谈阔论

留言列表