gpt4 book ai didi

mysql - 插入主键 UUID_SHORT 时出现重复条目​​ mysql

转载 作者:行者123 更新时间:2023-11-30 01:22:49 25 4
gpt4 key购买 nike

到目前为止我还不明白,我收到了重复条目错误消息,我正在尝试为主索引插入 UUID_SHORT。

id 列是整数 18,UUID_SHORT 是使用 BEFORE_INSERT 触发器生成的:

CREATE TRIGGER `TR_Documents_BI` BEFORE INSERT ON `documents`
FOR EACH ROW SET NEW.id = UUID_SHORT()

错误是

 Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '2147483647' for key 'PRIMARY'

我在 stackoverflow 上读到,我应该尝试使用 BigInt 存储数据,但结果并不那么令人信服,因为生成的第一个 UUID_SHORT 给出的结果是:

95161384827879440 

下一个类似自动增量的是

95161384827879440 + 1 

我不明白为什么我不能将 UUID_SHORT 作为我的主索引。

但是,如果我生成 UUID(),问题就不存在;

有人可以帮忙吗?

编辑: 不可能将 UUID_SHORT 存储为整数,明白了!但是当我使用 BigInt(18) 时,我生成了以下条目:95161384827879440,95161384827879441,95161384827879442,95161384827879443,95161384827879444

出现以下错误消息:

Warning: #1366 Incorrect integer value: '' for column 'id' at row 1

所以它仍然不是存储在我的列中的生成的 UUID_SHORT() :(

最佳答案

您需要使用BIGINT。 INT(18) 仍然是 32 位,不能容纳 18 位十进制数字。

至于 UUID_SHORT 的唯一性,您应该检查 manual .

关于mysql - 插入主键 UUID_SHORT 时出现重复条目​​ mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com