Solo una piccola aggiunta da fare perché ho ottenuto uno strano risultato quando ho provato a modificare gli UUID mentre venivano generati. Ho trovato la risposta di Rakesh la più semplice che ha funzionato bene, tranne nei casi in cui si desidera rimuovere i trattini.
Per riferimento:
UPDATE some_table SET some_field=(SELECT uuid());
Funzionava perfettamente da solo. Ma quando ho provato questo:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Quindi tutti i valori risultanti erano gli stessi (non leggermente diversi - ho quadruplicato il controllo con una GROUP BY some_field
query). Non importa come ho posizionato le parentesi, succede la stessa cosa.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Sembra che quando circonda la sottoquery per generare un UUID con REPLACE, esegua la query UUID solo una volta, il che probabilmente ha perfettamente senso come ottimizzazione per sviluppatori molto più intelligenti di me, ma non per me.
Per risolvere questo problema, l'ho diviso in due query:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Soluzione semplice, ovviamente, ma spero che questo farà risparmiare a qualcuno il tempo che ho appena perso.