Bạn đã không kiểm tra lỗi trong quá trình khôi phục cơ sở dữ liệu; lẽ ra phải có một vài cái.
Kết xuất của một bảng giống như của bạn sẽ giống như thế này trong PostgreSQL v10 (đây là 10.3 và nó trông hơi khác trong 10.1, nhưng điều đó không liên quan đến trường hợp này):
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);
Bây giờ vấn đề là AS integer
đã được giới thiệu với CREATE SEQUENCE
trong PostgreSQL v10, vì vậy câu lệnh đó sẽ không thành công với lỗi cú pháp trong 9.6.
Hậu quả là gì?
-
Bảng được tạo giống như trong câu lệnh đầu tiên.
-
Câu lệnh thứ ba tạo chuỗi không thành công.
-
Tất cả các câu lệnh yêu cầu trình tự sau đây cũng sẽ không thành công.
Lưu ý: Nó không được hỗ trợ để hạ cấp PostgeSQL bằng kết xuất và khôi phục.
Giải pháp là chỉnh sửa kết xuất theo cách thủ công cho đến khi nó hoạt động, cụ thể là bạn sẽ phải xóa AS integer
hoặc AS bigint
mệnh đề trong CREATE SEQUENCE
.