Ini adalah masalah biasa dalam pengurusan pangkalan data relasi. Kekangan utama asing direka untuk mengekalkan integriti data dengan memastikan konsistensi rujukan antara jadual. Apabila anda cuba memadam satu baris dalam jadual induk yang mempunyai baris yang sepadan dalam jadual kanak -kanak yang merujuknya melalui kunci asing, pangkalan data biasanya akan menghalang penghapusan dan membuang kesilapan. Ini kerana memadam baris induk akan meninggalkan baris kanak -kanak dengan rujukan menggantung, melanggar kekangan dan berpotensi membawa kepada rasuah data atau ketidakkonsistenan. Pendekatan yang paling mudah dan paling disyorkan adalah untuk memadamkan baris yang berkaitan dengan jadual kanak -kanak sebelum memadamkan baris dalam jadual induk. Jika anda cuba memadam pelanggan yang telah membuat pesanan, pangkalan data akan menghalang penghapusan. Pendekatan yang betul adalah untuk memadamkan semua pesanan yang dikaitkan dengan pelanggan tersebut dari jadual
, dan hanya memadam pelanggan dari jadual. Ini boleh dicapai dengan menggunakan pernyataan SQL berikut (dengan mengandaikan sistem pangkalan data anda menyokong pemadaman cascading - lihat di bawah untuk alternatif): Customers
Orders
keadaan dan dengan pemahaman yang lengkap tentang potensi risiko. Secara langsung melangkau kekangan ini boleh membawa kepada ketidakkonsistenan data dan rasuah. Kaedah untuk memintas bergantung pada sistem pangkalan data khusus anda. Orders.CustomerID
ALTER TABLE ... DISABLE CONSTRAINT
Dalam sesetengah sistem). Ini meminimumkan risiko meninggalkan pangkalan data dalam keadaan yang tidak konsisten. Walau bagaimanapun, ini sebenarnya tidak ON DELETE CASCADE
Seperti yang dijelaskan di atas, ini adalah pendekatan pilihan jika sesuai untuk model data anda. Ia secara automatik memadam baris kanak -kanak yang berkaitan. ON DELETE RESTRICT
Ini memudahkan proses dan memastikan konsistensi data. Walau bagaimanapun, berhati -hati mempertimbangkan implikasi sebelum menggunakan pendekatan ini. Ia lebih baik digunakan apabila hubungan logik menentukan bahawa memadamkan ibu bapa secara automatik akan memadamkan kanak -kanak. Ini memastikan sama ada semua penghapusan berjaya atau tidak ada, mencegah ketidakkonsistenan. Amalan, anda boleh menguruskan kekangan utama asing dan mencegah ketidakkonsistenan data apabila memadam baris dalam pangkalan data SQL anda. Sentiasa mengutamakan integriti data dan elakkan daripada melangkau kekangan melainkan benar -benar diperlukan dan di bawah kawalan ketat.
Atas ialah kandungan terperinci Cara Mengendalikan Kekangan Kunci Asing Dalam SQL Padam Barisan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!