Mesej ralat ini menunjukkan masalah mendayakan kekangan (seperti NOT NULL
, UNIQUE
atau FOREIGN KEY
) pada data anda. Ini bermakna sesetengah data melanggar peraturan ini.
Punca:
Ralat timbul daripada senario biasa ini:
NOT NULL
lajur: Lajur ditakrifkan sebagai tidak membenarkan nilai null mengandungi null.Penyelesaian:
Berikut ialah cara untuk menyelesaikan masalah:
Kenal pasti Nilai Null: Periksa lajur yang ditandakan sebagai NOT NULL
untuk sebarang nilai nol. Gunakan alatan pangkalan data atau pertanyaan untuk mencari baris bermasalah ini.
Hapuskan Kekunci Utama Pendua: Cari dan alih keluar baris pendua yang berkongsi nilai kunci utama yang sama.
Semak Jenis Data: Sahkan bahawa jenis data set data anda tepat padan dengan skema pangkalan data. Beri perhatian kepada perbezaan halus (cth., INT
lwn. VARCHAR
).
Siasat Ralat Set Data: Gunakan kaedah GetErrors()
(atau setara dalam persekitaran anda) untuk menentukan ralat tertentu. Ini akan menunjukkan kepada anda lajur yang tepat dan sifat pelanggaran kekangan.
Betulkan Data: Berdasarkan butiran ralat, ubah suai set data atau pangkalan data anda untuk menyelesaikan ketidakkonsistenan. Ini mungkin melibatkan pengemaskinian nilai nol, mengalih keluar pendua atau menukar jenis data.
Contoh Ilustrasi:
Contoh sebelumnya menyerlahkan gabungan luar yang hilang menyebabkan nilai nol dalam lajur eval
. Penyelesaian yang terlibat menggunakan NVL(e.eval, '')
(atau fungsi serupa dalam sistem pangkalan data anda) untuk menggantikan null dengan rentetan kosong, menyelesaikan pelanggaran kekangan NOT NULL
.
Dengan menangani isu-isu yang berpotensi ini secara sistematik, anda boleh berjaya mendayakan kekangan dan memastikan integriti data.
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Gagal Mendayakan Kekangan: Pelanggaran Bukan Nol, Unik atau Asing'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!