Menguatkuasakan Integriti Rujukan dalam Pangkalan Data Berasingan
Artikel ini menangani masalah mewujudkan hubungan kunci asing antara jadual yang berada dalam pangkalan data yang berbeza. Secara langsung mewujudkan kekangan kunci asing merentas pangkalan data biasanya tidak disokong oleh sistem pangkalan data, mengakibatkan ralat.
Memanfaatkan Pencetus untuk Integriti Rujukan Merentas Pangkalan Data
Penyelesaian praktikal melibatkan penggunaan pencetus pangkalan data. Pencetus (khususnya INSERT
dan UPDATE
pencetus) boleh dilaksanakan untuk menyemak sama ada kunci utama yang sepadan wujud dalam jadual berkaitan sebelum membenarkan operasi sisipan atau kemas kini. Jika kunci utama tidak ditemui, pencetus menghalang tindakan dan boleh mengendalikan ralat yang terhasil.
Contoh Pelaksanaan Pencetus
Yang berikut menggambarkan pelaksanaan pencetus:
<code class="language-sql">CREATE TRIGGER dbo.MyTableTrigger ON dbo.MyTable AFTER INSERT, UPDATE AS BEGIN IF NOT EXISTS (SELECT PK FROM OtherDB.dbo.TableName WHERE PK IN (SELECT FK FROM inserted)) BEGIN -- Handle the Referential Integrity Violation Here (e.g., RAISERROR, ROLLBACK) END END;</code>
Pertimbangan Penting
Walaupun pencetus menyediakan penyelesaian, ia bukanlah kaedah yang ideal untuk menguatkuasakan integriti rujukan. Amalan terbaik kekal menyimpan jadual berkaitan dalam pangkalan data yang sama. Walau bagaimanapun, apabila ini tidak dapat dilaksanakan, pencetus menawarkan mekanisme yang teguh untuk mengurus kekangan rujukan merentas pangkalan data. Pengendalian ralat yang teliti dalam pencetus adalah penting untuk mengekalkan konsistensi data.
Atas ialah kandungan terperinci Bagaimanakah Pencetus Boleh Mengekalkan Integriti Rujukan Antara Jadual dalam Pangkalan Data Berasingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!