Hanya tambahan kecil untuk dibuat karena saya berakhir dengan hasil yang aneh ketika mencoba memodifikasi UUID saat dibuat. Saya menemukan jawaban oleh Rakesh menjadi sederhana yang bekerja dengan baik, kecuali dalam kasus di mana Anda ingin strip strip.
Sebagai referensi:
UPDATE some_table SET some_field=(SELECT uuid());
Ini bekerja dengan sendirinya dengan sempurna. Tetapi ketika saya mencoba ini:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Kemudian semua nilai yang dihasilkan sama (tidak sedikit berbeda - saya empat kali lipat memeriksa dengan GROUP BY some_field
kueri). Tidak peduli bagaimana saya menempatkan tanda kurung, hal yang sama terjadi.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Tampaknya saat mengelilingi subkueri untuk menghasilkan UUID dengan REPLACE, itu hanya menjalankan kueri UUID sekali, yang mungkin masuk akal sebagai pengoptimalan bagi pengembang yang jauh lebih cerdas daripada saya, tetapi tidak bagi saya.
Untuk mengatasi ini, saya hanya membaginya menjadi dua kueri:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Solusi sederhana, jelas, tapi mudah-mudahan ini akan menyelamatkan seseorang dari waktu yang hilang.