PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एक एनम वैल्यू का नाम बदलने से टाइप रिलेशन नहीं मिला

एक एनम के मूल्य का नाम बदलना केवल पोस्टग्रेज 10 से शुरू होने का समर्थन करता है।

मैन्युअल में दस्तावेज के अनुसार ए> आपको उपयोग करना होगा rename VALUE , नहीं rename attribute एक एनम के मूल्य का नाम बदलने के लिए।

Enums मान भी स्ट्रिंग स्थिरांक हैं, पहचानकर्ता नहीं। इसलिए आपको उन्हें सिंगल कोट्स में संलग्न करने की आवश्यकता है, न कि डबल कोट्स में:

ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';

अगर आपको आश्चर्य है कि आपको गलत सिंटैक्स के साथ "टाइप ... मौजूद नहीं है" त्रुटि क्यों मिलती है:

जब आप विकल्प का उपयोग करते हैं RENAME ATTRIBUTE यह इंगित करता है कि एक "नियमित" ऑब्जेक्ट प्रकार को बदला जाना चाहिए, इसलिए पोस्टग्रेज़ एक "वास्तविक" ऑब्जेक्ट प्रकार की तलाश करता है।

लेकिन एक "एनम टाइप" एक "ऑब्जेक्ट टाइप" नहीं है और इसलिए पोस्टग्रेज सिंटैक्स त्रुटि के बजाय "टाइप xyz मौजूद नहीं है" के बारे में शिकायत करते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल एग्रीगेट फंक्शन ओवर रेंज

  2. PostgreSQL JDBC getGeneratedKeys सभी कॉलम लौटाता है

  3. टाइमस्टैम्प से मिलीसेकंड भाग छोड़ें

  4. plpgsql में एक jsonb नल की पहचान करने के लिए सर्वोत्तम अभ्यास

  5. पोस्टग्रेज फ़ंक्शन