回答:
挿入する前に実行するトリガーを作成して、特定の列のUUIDを生成します。
CREATE TRIGGER before_insert_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET new.LogID = uuid();
UUID()式と呼ばれるUUIDを生成します。
残念ながら(とにかく)MySQLは、フィールドのデフォルト値として式を許可しません。回避策として、フィールドを常にデフォルトのnullに設定し、挿入時にUUIDでフィールドを更新するトリガーを使用できます。
私はかなり確信しているあなたはまだできません実際には、。UUIDを主キーとして使用せず、代わりに、よりスリムで優れたデータ型を使用することを真剣に検討しINT
ます。UUIDを別の列として追加しTRIGGER
、必要に応じてを介して更新できます。
SELECT LENGTH(UNHEX(REPLACE(UUID(),'-','')))
= 16バイトのバイナリ。それでもより大きいINT
が、はるかに良いよりもVARCHAR(36)