एक एनम के मूल्य का नाम बदलना केवल पोस्टग्रेज 10 से शुरू होने का समर्थन करता है।
मैन्युअल में दस्तावेज के अनुसार
ए> आपको उपयोग करना होगा rename VALUE
, नहीं rename attribute
एक एनम के मूल्य का नाम बदलने के लिए।
Enums मान भी स्ट्रिंग स्थिरांक हैं, पहचानकर्ता नहीं। इसलिए आपको उन्हें सिंगल कोट्स में संलग्न करने की आवश्यकता है, न कि डबल कोट्स में:
ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';
अगर आपको आश्चर्य है कि आपको गलत सिंटैक्स के साथ "टाइप ... मौजूद नहीं है" त्रुटि क्यों मिलती है:
जब आप विकल्प का उपयोग करते हैं RENAME ATTRIBUTE
यह इंगित करता है कि एक "नियमित" ऑब्जेक्ट प्रकार को बदला जाना चाहिए, इसलिए पोस्टग्रेज़ एक "वास्तविक" ऑब्जेक्ट प्रकार की तलाश करता है।
लेकिन एक "एनम टाइप" एक "ऑब्जेक्ट टाइप" नहीं है और इसलिए पोस्टग्रेज सिंटैक्स त्रुटि के बजाय "टाइप xyz मौजूद नहीं है" के बारे में शिकायत करते हैं।