ध्यान दें कि MySQL के UUID()रिटर्न CHAR(36), और UUIDs को पाठ के रूप में संग्रहीत करना (जैसा कि अन्य उत्तरों में दिखाया गया है) स्पष्ट रूप से अक्षम है। इसके बजाय, स्तंभ होना चाहिए BINARY(16), और आप UUID_TO_BIN()डेटा सम्मिलित करते समय और BIN_TO_UUID()इसे वापस पढ़ते समय उपयोग कर सकते हैं ।
CREATE TABLE app_users
(
app_user_id SMALLINT(6) NOT NULL AUTO_INCREMENT PRIMARY KEY,
api_key BINARY(16)
);
CREATE TRIGGER before_insert_app_users
BEFORE INSERT ON app_users
FOR EACH ROW
IF new.api_key IS NULL
THEN
SET new.api_key = UUID_TO_BIN(UUID());
END IF;
ध्यान दें कि चूंकि MySQL वास्तव में यह नहीं जानता है कि यह UUID है, इसलिए द्विआधारी के रूप में संग्रहीत समस्याओं का निवारण करना मुश्किल हो सकता है। यह लेख बताता है कि एक उत्पन्न स्तंभ कैसे बनाया जाए जो बिना किसी स्थान को उठाए बिना UUID को पाठ में परिवर्तित कर देगा या अलग-अलग द्विआधारी और पाठ संस्करणों को सिंक में रखने की चिंता करेगा: https://mysqlserverteam.com/storing-uuid-values-in -mysql-टेबल /