Nó được một lúc kể từ khi câu hỏi này được hỏi, hy vọng có thể giúp đỡ. Bởi vì bạn không thể thay đổi hoặc thay đổi cấu trúc db, bạn có thể làm điều này. theo postgresql docs.
TRUNCATE - để trống một bảng hoặc bộ bảng.
TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
[ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]
Mô tả
TRUNCATE nhanh chóng loại bỏ tất cả các hàng từ một tập hợp các bảng. Nó có tác dụng tương tự như DELETE không đủ tiêu chuẩn trên mỗi bảng, nhưng vì nó không thực sự quét các bảng nhanh hơn. Hơn nữa, nó lấy lại không gian đĩa ngay lập tức, thay vì yêu cầu một hoạt động VACUUM tiếp theo. Điều này hữu ích nhất trên các bảng lớn.
Truncate bảng othertable, và thác cho bất kỳ bảng tham chiếu othertable qua trở ngại foreign-key:
TRUNCATE othertable CASCADE;
Cùng, và cũng có thể thiết lập lại bất kỳ máy phát điện chuỗi liên kết:
TRUNCATE bigtable, fattable RESTART IDENTITY;
Cắt ngắn và đặt lại bất kỳ trình tạo trình tự liên quan nào:
TRUNCATE revinfo RESTART IDENTITY CASCADE ;
Kiểm tra về điều này cũng như [trên xóa thác] (http://stackoverflow.com/questions/10356484/how-to-add-on-delete-cascade-constraints);) Tốt để có các cài đặt này trong bảng của bạn Mặc dù .. Khi 'tạo các khóa ngoại ', chúng ta sẽ bổ sung thêm" cha mẹ "và con". Vì vậy, khi xóa chúng tôi 'xóa con và sau đó cha mẹ';) – bonCodigo