これまでのところ理解できていません。プライマリ インデックスに 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'
データを BigInt で保存する必要があることを stackoverflow で読みましたが、生成された最初の UUID_SHORT が示すように、結果はそれほど説得力がありません。
95161384827879440
nd 自動インクリメントのような次のものは
95161384827879440 + 1
UUID_SHORT をプライマリ インデックスとして使用できない理由がわかりません。
ただし、UUID(); を生成する場合、問題は存在しません。
誰か助けてください。
編集: UUID_SHORT を整数として保存することはできません。しかし、BigInt(18) を使用すると、次のエントリが生成されました。
次のエラー メッセージが表示されます。
Warning: #1366 Incorrect integer value: '' for column 'id' at row 1
したがって、それはまだ私の列に格納された生成された UUID_SHORT() ではありません:(