相关疑难解决方法(0)

如何在MySQL中生成UUIDv4?

MySQL的UUID函数返回一个UUIDv1 GUID.我正在寻找一种在SQL中生成随机GUID(即UUIDv4)的简单方法.

mysql uuid

20
推荐指数
4
解决办法
6989
查看次数

SQL - 在更新查询上替换(UUID)时重复

我有一个表,其中包含二进制(16)格式的 UUID 列,我需要更新所有旧条目,但未设置该值。尝试查询:

UPDATE sometable SET uuid=UNHEX(REPLACE(UUID(), '-', '')) WHERE uuid IS NULL;
Run Code Online (Sandbox Code Playgroud)

仅更新一行后,它会返回如下错误:

键“uuid”重复条目“\xAD\x15\xEAoT\xAB\x11\xE7\x9B\x0F\xF0yYry\xD5”

有什么方法可以更新所有行吗?我将不胜感激您的帮助...

mysql sql mariadb

5
推荐指数
1
解决办法
1488
查看次数

MySQL为多行生成UUID()

我正在尝试将UUID添加到我的一些MySQL数据库(MySQL 5.7.9)中的某些表中.首先,我首先添加一个列来接收UUID:

ALTER TABLE `mytable` ADD COLUMN `Uuid` BINARY(16) DEFAULT NULL;
Run Code Online (Sandbox Code Playgroud)

然后,对于表中已有的所有条目,我生成UUID(因为DB中的每个条目都会在其UUID字段中收到NULL值.

UPDATE `mytable` SET Uuid= unhex(replace(uuid(),'-','')) WHERE Uuid IS NULL;
Run Code Online (Sandbox Code Playgroud)

现在,问题在于我通过这样做得到一些非常奇怪的行为; 在我的一些数据库中,生成的每个UUID都是唯一的(如预期的那样).但是,在其他数据库上,所有生成的UUID都是相同的(不相似,相同).

我怀疑这是由MySQL查询优化器引起的,因为不同数据库实例之间的行为不一致(所有这些都在MySQL 5.7.9上).但是,我不知道如何解决这个问题.

所以,MySQL大师,我做错了什么?

mysql sql database

5
推荐指数
2
解决办法
3085
查看次数

标签 统计

mysql ×3

sql ×2

database ×1

mariadb ×1

uuid ×1