आपने डेटाबेस की पुनर्स्थापना के दौरान त्रुटियों की जाँच नहीं की; कुछ होना चाहिए था।
आपकी जैसी तालिका का एक डंप 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
में क्लॉज ।