PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Sau khi khôi phục, chuỗi cơ sở dữ liệu của tôi bị xóa khỏi cột trong Postgresql

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 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển từ MySQL sang PostgreSQL - mẹo, thủ thuật và mẹo gì?

  2. Làm thế nào để khai báo các biến cục bộ trong postgresql?

  3. Các hàm toán học PostgreSQL

  4. SQL Nhận tất cả các bản ghi cũ hơn 30 ngày

  5. 8 tính năng tương thích mới của Oracle trong EnterpriseDB PPAS 9.2 Beta