我得到了到目前为止我不明白的内容,我收到了一条重复的条目错误消息,我正在尝试为我的主索引插入一个 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() :(