Có giải pháp.
Tôi đã phải vô hiệu hóa Trình kích hoạt trên bảng để dừng kiểm tra ràng buộc khóa ngoại.
Tắt trình kích hoạt
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Bật trình kích hoạt
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Ghi chú quan trọng :
-
Theo liên kết tài liệu này , bạn có thể chuyển một danh sách làm đối số thứ hai cho
execute()
(ví dụ:bạn có thể muốn chuyển động tên bảng), nhưng điều này sẽ tự động thoát khỏi các biến và cuối cùng bạn có thể tạo ra một truy vấn PostgreSQL sai cú pháp (tôi đã mất rất nhiều thời gian để sửa nó) -
Đảm bảo rằng bạn bật lại trình kích hoạt đúng cách
-
Nếu bạn gặp phải lỗi quyền bị từ chối Sau đó, bạn có thể muốn kiểm tra quyền người dùng DB, tôi vừa bật quyền người dùng siêu cấp từ PgAdmin, điều này là ổn đối với tôi. và mọi thứ trở lại hoạt động. Cách thực hiện?