Punya solusinya.
Saya harus menonaktifkan Pemicu di atas meja untuk menghentikan pemeriksaan batasan kunci asing.
Nonaktifkan Pemicu
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Aktifkan Pemicu
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Catatan Penting :
-
Menurut tautan dokumen ini , Anda dapat meneruskan daftar sebagai argumen kedua ke
execute()
metode (misalnya:Anda mungkin ingin meneruskan nama tabel secara dinamis), tetapi ini akan secara otomatis keluar dari variabel dan Anda mungkin akhirnya membentuk kueri PostgreSQL yang salah secara sintaksis (yang menghabiskan banyak waktu saya untuk memperbaikinya) -
Pastikan Anda mengaktifkan kembali pemicu dengan benar
-
Jika Anda mendapatkan kesalahan Izin ditolak Maka Anda mungkin ingin memeriksa izin pengguna DB, saya baru saja mengaktifkan izin pengguna super dari PgAdmin, yang tidak masalah bagi saya. dan semuanya kembali bekerja. Bagaimana cara melakukannya?