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

postgresql डुप्लीकेट कुंजी अद्वितीय बाधा का उल्लंघन करती है

यह लेख बताता है कि आपका अनुक्रम सिंक से बाहर हो सकता है और आपको इसे मैन्युअल रूप से सिंक में वापस लाना होगा।

URL बदलने की स्थिति में लेख का एक अंश:

<ब्लॉकक्वॉट>

अगर आपको PostgreSQLडेटाबेस में डेटा डालने का प्रयास करते समय यह संदेश मिलता है:

ERROR:  duplicate key violates unique constraint
<ब्लॉकक्वॉट>

इसका मतलब यह है कि जिस तालिका के साथ आप काम कर रहे हैं उसमें प्राथमिक कुंजी अनुक्रम किसी भी तरह से सिंक से बाहर हो गया है, संभवतः एक बड़े पैमाने पर प्रक्रिया (या उन पंक्तियों के साथ कुछ) के कारण। इसे "बग बायडिजाइन" कहें, लेकिन ऐसा लगता है कि डंप फ़ाइल से पुनर्स्थापित करने के बाद आपको प्राथमिक कुंजी इंडेक्स को मैन्युअल रूप से रीसेट करना होगा। किसी भी दर पर, यह देखने के लिए कि क्या आपके मान समन्वयित नहीं हैं, इन दो आदेशों को चलाएँ:

SELECT MAX(the_primary_key) FROM the_table;   
SELECT nextval('the_primary_key_sequence');
<ब्लॉकक्वॉट>

यदि पहला मान दूसरे मान से अधिक है, तो आपका क्रम समन्वयित नहीं है। अपने पीजी डेटाबेस का बैकअप लें (बस मामले में), फिर यह कमांड चलाएँ:

SELECT setval('the_primary_key_sequence', (SELECT MAX(the_primary_key) FROM the_table)+1);
<ब्लॉकक्वॉट>

यह अनुक्रम को अगले उपलब्ध मान पर सेट कर देगा जो अनुक्रम में किसी भी मौजूदा प्राथमिक कुंजी से अधिक है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Docker . में Postgres कंटेनर को प्रारंभ और पॉप्युलेट करना

  2. PostgreSQL सुरक्षा_बैरियर दृश्य कैसे काम करते हैं?

  3. माउंटेन लायन पर पीजी रत्न '0.14.0' विफल रहता है

  4. SQLAlchemy घोषणात्मक:ट्रिगर्स और इंडेक्स को परिभाषित करना (पोस्टग्रेज 9)

  5. Postgresql में क्षैतिज शार्प का एक अच्छा तरीका क्या है?