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

त्रुटि:Postgres . में एक से अधिक स्वामित्व वाले अनुक्रम पाए गए

अपडेट करें: इस बग को PostgreSQL v12 में कमिट के साथ ठीक किया गया है 19781729f78 .
शेष उत्तर पुराने संस्करणों के लिए प्रासंगिक है।

एक serial कॉलम में एक अनुक्रम होता है जो कॉलम और DEFAULT . के स्वामित्व में होता है वह मान जो शुद्ध अनुक्रम मान प्राप्त करता है।

यदि आप उस कॉलम को पहचान कॉलम में बदलने का प्रयास करते हैं, तो आपको एक त्रुटि मिलेगी कि कॉलम के लिए पहले से ही एक डिफ़ॉल्ट मान है।

अब आपने डिफ़ॉल्ट मान को छोड़ दिया होगा, लेकिन उस क्रम को नहीं जो serial . से संबंधित है कॉलम। फिर जब आपने कॉलम को एक पहचान कॉलम में परिवर्तित किया, तो कॉलम के स्वामित्व वाला एक दूसरा क्रम बनाया गया।

अब जब आप एक पंक्ति सम्मिलित करने का प्रयास करते हैं, PostgreSQL . को खोजने और उपयोग करने का प्रयास करता है अनुक्रम स्तंभ के स्वामित्व में है, लेकिन दो हैं, इसलिए त्रुटि संदेश।

मेरा तर्क है कि यह PostgreSQL में एक बग है:मेरी राय में, इसे या तो पहचान कॉलम के लिए मौजूदा अनुक्रम को फिर से तैयार करना चाहिए था या आपको एक त्रुटि दी गई थी कि कॉलम के स्वामित्व में पहले से ही एक अनुक्रम है, और आपको इसे छोड़ देना चाहिए। मैं इस बग को ठीक करने की कोशिश करूंगा

इस बीच, आपको serial . से पीछे छोड़े गए अनुक्रम को मैन्युअल रूप से छोड़ देना चाहिए कॉलम। निम्नलिखित क्वेरी चलाएँ:

SELECT d.objid::regclass
FROM pg_depend AS d
   JOIN pg_attribute AS a ON d.refobjid = a.attrelid AND
                             d.refobjsubid = a.attnum
WHERE d.classid = 'pg_class'::regclass
  AND d.refclassid = 'pg_class'::regclass
  AND d.deptype <> 'i'
  AND a.attname = 'patientid'
  AND d.refobjid = 'patient'::regclass;

यह आपको serial . से पीछे छोड़े गए अनुक्रम का नाम देना चाहिए कॉलम। इसे छोड़ दें, और पहचान कॉलम वांछित व्यवहार करना चाहिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pg_dump तालिका अनुक्रम को अनदेखा कर रहा है?

  2. पोस्टग्रेज 10 . का उपयोग करते समय अद्यतन में सेट-रिटर्न फ़ंक्शन की अनुमति नहीं है

  3. मैं हेरोकू पर स्ट्रैपी के साथ पोस्टग्रेस डीबी से कनेक्ट नहीं हो सकता

  4. Django में SearchVector और SearchQuery के साथ असंगत का उपयोग करना

  5. एक कॉलम मान को एक चयन में दो कॉलम में विभाजित करें?