जब मैं उत्पन्न हुआ तो UUIDs को संशोधित करने का प्रयास करते समय एक मामूली परिणाम के रूप में मैं एक अजीब परिणाम के साथ समाप्त हो गया। मैंने पाया जवाब से राकेश , सरल है कि अच्छी तरह से काम हो ऐसे मामलों में जहां आप डैश उन्हें हटाना चाहते को छोड़कर के लिए।
सन्दर्भ के लिए:
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(), '-', ''));
ऐसा लगता है कि जब आसपास के क्षेत्र में REPLACE के साथ एक UUID उत्पन्न होता है, तो यह केवल UUID क्वेरी को एक बार चलाता है, जो संभवतः I की तुलना में बहुत अधिक समझदार डेवलपर्स के लिए एक अनुकूलन के रूप में सही समझ में आता है, लेकिन यह मेरे लिए नहीं था।
इसे हल करने के लिए, मैंने इसे दो प्रश्नों में विभाजित किया है:
UPDATE some_table SET some_field=(SELECT uuid());
UPDATE some_table SET some_field=REPLACE(some_field, '-', '');
सरल समाधान, स्पष्ट रूप से, लेकिन उम्मीद है कि यह किसी ऐसे समय को बचाएगा जो मैंने अभी खो दिया है।