MySQL'in UUID()geri dönüşlerinin CHAR(36)ve UUID'leri metin olarak saklamanın (diğer cevaplarda gösterildiği gibi) açıkça verimsiz olduğunu unutmayın. Bunun yerine sütun olmalıdır BINARY(16)ve UUID_TO_BIN()verileri eklerken ve BIN_TO_UUID()geri okurken kullanabilirsiniz .
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 bunun bir UUID olduğunu gerçekten bilmediğinden, ikili olarak depolanan problemleri gidermenin zor olabileceğini unutmayın. Bu makale, UUID'yi gerektiği gibi metne dönüştürecek, herhangi bir yer kaplamadan veya ayrı ikili ve metin sürümlerini eşzamanlı tutma endişesi olmadan nasıl oluşturulacağını açıklar: https://mysqlserverteam.com/storing-uuid-values-in -mysql-tablolar /