Tylko drobny dodatek do zrobienia, ponieważ skończyło się na dziwnym wyniku, gdy próbowałem zmodyfikować UUID w trakcie ich generowania. Znalazłem odpowiedź u Rakesh być najprostszy, że działa dobrze, z wyjątkiem przypadków, w których chcesz się rozebrać kreski.
Na przykład:
UPDATE some_table SET some_field=(SELECT uuid());
To działało doskonale samodzielnie. Ale kiedy próbowałem tego:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Wtedy wszystkie otrzymane wartości były takie same (nie różniły się nieznacznie - czterokrotnie sprawdziłem GROUP BY some_field
zapytaniem). Nie ma znaczenia, jak umieściłem nawiasy, dzieje się to samo.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Wydaje się, że otaczając podzapytanie w celu wygenerowania UUID za pomocą polecenia REPLACE, uruchamia zapytanie UUID tylko raz, co prawdopodobnie ma sens jako optymalizacja dla znacznie mądrzejszych programistów niż ja, ale nie dla mnie.
Aby rozwiązać ten problem, po prostu podzieliłem go na dwa zapytania:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Oczywiście proste rozwiązanie, ale mam nadzieję, że pozwoli to komuś zaoszczędzić czas, który właśnie straciłem.