Ok, wiem, że już to robiłem. Ale nie mogę tego zrozumieć. Stworzyłem stół. Jedna z kolumn ma identyfikator „LogID”, jest także kluczem podstawowym.
Jak to zmienić, aby ta kolumna generowała identyfikator UUID dla każdego nowego wpisu?
Dzięki
Wystarczy utworzyć wyzwalacz do uruchomienia przed wstawieniem, aby wygenerować identyfikator UUID dla danej kolumny.
CREATE TRIGGER before_insert_mytable
BEFORE INSERT ON mytable
FOR EACH ROW
SET new.LogID = uuid();
Jestem prawie pewien, że tak naprawdę nie możesz . Poważnie zastanowiłbym się nad niestosowaniem UUID jako klucza podstawowego, zamiast używania cieńszego, ładniejszego typu danych INT
. Możesz dodać swój UUID jako osobną kolumnę i zaktualizować go za pomocą a TRIGGER
, jeśli ci to odpowiada.
SELECT LENGTH(UNHEX(REPLACE(UUID(),'-','')))
= 16 bajtów binarnych. Wciąż większy niż,INT
ale znacznie lepszy niżVARCHAR(36)
Właśnie zdecydowałem się dołączyć polecenie UUID () do wstawki z mojej aplikacji.
Dziękuje wszystkim.
źródło