यहां लंबी खोज के बाद मुझे यही मिला:
वास्तव में केवल एक कॉलम है जिसकी पुष्टि 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
-
चलाएं
SELECT c.relname FROM pg_class c WHERE c.relkind = 'S';
और डुप्लिकेट अनुक्रमों की पहचान करें (अर्थात वे जहां एक संस्करण है और अंत में एक के बिना एक) -
DROP SEQUENCE <sequenceName_seq>;
के साथ अनावश्यक अनुक्रम हटाएं (अंत में 1 के बिना केवल एक को हटाया जा सकता है) -
pgAdmin4 को रिफ्रेश करें