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

Postgresql में कॉलम से हटाए गए मेरे डेटाबेस सीरियल को पुनर्स्थापित करने के बाद

आपने डेटाबेस की पुनर्स्थापना के दौरान त्रुटियों की जाँच नहीं की; कुछ होना चाहिए था।

आपकी जैसी तालिका का एक डंप PostgreSQL v10 में इस तरह दिखेगा (यह 10.3 है और यह 10.1 में थोड़ा अलग दिखता है, लेकिन यह इस मामले में अप्रासंगिक है):

CREATE TABLE public.produto (
    produto_id integer NOT NULL
);

ALTER TABLE public.produto OWNER TO laurenz;

CREATE SEQUENCE public.produto_produto_id_seq
    AS integer
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;

ALTER TABLE public.produto_produto_id_seq OWNER TO laurenz;

ALTER SEQUENCE public.produto_produto_id_seq
    OWNED BY public.produto.produto_id;

ALTER TABLE ONLY public.produto
    ALTER COLUMN produto_id
    SET DEFAULT nextval('public.produto_produto_id_seq'::regclass);

अब समस्या यह है कि AS integer CREATE SEQUENCE . के साथ पेश किया गया था PostgreSQL v10 में, ताकि कथन 9.6 में सिंटैक्स त्रुटि के साथ विफल हो जाए।

इसका परिणाम क्या है?

  • तालिका पहले कथन की तरह बनाई गई है।

  • अनुक्रम बनाने वाला तीसरा कथन विफल रहता है।

  • अनुक्रम की आवश्यकता वाले सभी निम्नलिखित कथन भी विफल हो जाएंगे।

नोट: यह डंप और पुनर्स्थापना के साथ PostgeSQL को डाउनग्रेड करने के लिए समर्थित नहीं है।

समाधान यह है कि डंप को मैन्युअल रूप से तब तक संपादित किया जाए जब तक कि यह काम न करे, विशेष रूप से आपको AS integer को हटाना होगा। या AS bigint CREATE SEQUENCE में क्लॉज ।




  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::UniqueViolation:ERROR:डुप्लिकेट कुंजी मान अद्वितीय बाधा का उल्लंघन करता है?

  2. PostgreSQL में वर्तमान दिनांक और समय (समय क्षेत्र के बिना) कैसे प्राप्त करें

  3. PostgreSQL में EXCEPT कैसे काम करता है

  4. RPAD () PostgreSQL में फ़ंक्शन

  5. PostgreSQL डेटाबेस में CSV डेटा कैसे डालें (दूरस्थ डेटाबेस)