Лише незначне доповнення, яке я зробив, коли я виявив дивний результат, коли намагався змінити UUID, коли вони були створені. Я знайшов відповідь на Ракеш , щоб бути самим простим , що працює добре, за винятком тих випадків , коли ви хочете позбавити тир.
Для довідки:
UPDATE some_table SET some_field=(SELECT uuid());
Це чудово спрацювало самостійно. Але коли я спробував це:
UPDATE some_table SET some_field=(REPLACE((SELECT uuid()), '-', ''));
Тоді всі отримані значення були однаковими (не тонко різними - я вчетверо перевірявся GROUP BY some_field
запитом). Неважливо, як я розмістив дужки, те саме відбувається.
UPDATE some_table SET some_field=(REPLACE(SELECT uuid(), '-', ''));
Схоже, коли оточує підзапит для створення UUID з REPLACE, він запускає лише один раз UUID-запит, що, ймовірно, має ідеальний сенс як оптимізація для набагато розумніших розробників, ніж я, але мені це не вдалося.
Щоб вирішити це, я просто розділив його на два запити:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
Очевидно, просте рішення, але, сподіваюся, це заощадить комусь час, який я щойно втратив.