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

PostgreSQL / pgAdmin4 में सीरियल से पहचान डेटाटाइप में स्विच करने के बाद डुप्लिकेट कॉलम

यहां लंबी खोज के बाद मुझे यही मिला:

वास्तव में केवल एक कॉलम है जिसकी पुष्टि psql का उपयोग करके की जा सकती है। हालांकि pg_dump -st names <databasename> . कमांड का इस्तेमाल करते हुए बैश से मैंने देखा कि आईडी कॉलम से जुड़े 2 अनुक्रम परिभाषित किए जा रहे थे:public.names_id_seq और public.names_id_seq1

इसकी पुष्टि SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'; चलाकर भी की जा सकती है। psql से जहां दोनों क्रम दिखाई देते हैं।

अगर कोई public.names_id_seq1 को मिटाने की कोशिश करता है किसी को त्रुटि मिलती है ERROR: cannot drop sequence apis_id_seq1 because column id of table apis requires it

समाधान DROP SEQUENCE names_id_seq; . के साथ पहला क्रम हटाना है pgAdmin4 को रीफ्रेश करने के बाद दूसरा कॉलम चला गया था।

TL;DR

  1. चलाएं SELECT c.relname FROM pg_class c WHERE c.relkind = 'S'; और डुप्लिकेट अनुक्रमों की पहचान करें (अर्थात वे जहां एक संस्करण है और अंत में एक के बिना एक)

  2. DROP SEQUENCE <sequenceName_seq>; के साथ अनावश्यक अनुक्रम हटाएं (अंत में 1 के बिना केवल एक को हटाया जा सकता है)

  3. pgAdmin4 को रिफ्रेश करें




  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. रूबी ऑन रेल्स एरर को कैसे हैंडल करें:कृपया पोस्टग्रेस्क्ल एडॉप्टर स्थापित करें:'जेम इंस्टाल एक्टिवरेकॉर्ड-पोस्टग्रेस्क्ल-एडेप्टर'

  3. किसी तालिका में INSERT पर कनेक्टेड तालिकाओं में डेटा सम्मिलित करें

  4. पोस्टग्रेज:टेबलों को पॉप्युलेट करने से पहले या बाद में इंडेक्स बनाना चाहिए

  5. जांचें कि क्या JSON में PL/pgSQL के साथ कुंजी मौजूद है?