Nur eine kleine Ergänzung, da ich beim Versuch, die UUIDs so zu ändern, wie sie generiert wurden, ein seltsames Ergebnis erzielt habe. Ich fand die Antwort von Rakesh die einfachste, die gut funktionierte, außer in Fällen, in denen Sie die Striche entfernen möchten.
Als Referenz:
UPDATE some_table SET some_field=(SELECT uuid());
Dies funktionierte perfekt für sich. Aber als ich das versuchte:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Dann waren alle resultierenden Werte gleich (nicht subtil unterschiedlich - ich vervierfachte mit einer GROUP BY some_field
Abfrage). Egal wie ich die Klammern angeordnet habe, das gleiche passiert.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Es scheint, dass beim Umgeben der Unterabfrage zum Generieren einer UUID mit REPLACE die UUID-Abfrage nur einmal ausgeführt wird, was als Optimierung für viel intelligentere Entwickler als ich wahrscheinlich durchaus sinnvoll ist, für mich jedoch nicht.
Um dies zu beheben, habe ich es einfach in zwei Abfragen aufgeteilt:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Natürlich eine einfache Lösung, aber hoffentlich spart dies jemandem die Zeit, die ich gerade verloren habe.