Menavigasi Kekangan Utama Asing Merentas Pangkalan Data
Pengurusan pangkalan data perhubungan selalunya memerlukan pemautan jadual merentas pangkalan data yang berbeza. Walau bagaimanapun, melaksanakan secara langsung kekangan kunci asing antara jadual dalam pangkalan data berasingan biasanya tidak disokong, mengakibatkan ralat.
Untuk mengekalkan integriti data dalam senario sedemikian, pencetus menyediakan penyelesaian yang berdaya maju. Pencetus membenarkan penguatkuasaan integriti rujukan dengan menyemak konsistensi data secara proaktif.
Satu strategi yang berkesan melibatkan mencipta sisipan atau pencetus kemas kini pada jadual pangkalan data kanak-kanak. Pencetus ini mengesahkan kewujudan nilai kunci asing dalam jadual kunci utama pangkalan data induk. Jika nilai kunci asing tidak ditemui, pencetus boleh sama ada menolak operasi sisipan/kemas kini atau mengendalikan percanggahan dengan sewajarnya.
Di bawah ialah contoh pencetus yang direka untuk mengekalkan integriti rujukan semasa sisipan ke dalam jadual (MyTable) dalam pangkalan data kanak-kanak:
<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 -- Implement error handling here ROLLBACK TRANSACTION END END</code>
Pencetus ini memastikan bahawa kunci asing (FK) dalam baris yang dimasukkan/dikemas kini sepadan dengan kunci utama (PK) dalam jadual TableName yang terletak dalam pangkalan data OtherDB. Ketidakpadanan mencetuskan pemulangan semula, membenarkan pengurusan ralat tersuai.
Walaupun pencetus menawarkan penyelesaian praktikal, ia bukanlah kaedah yang ideal untuk mengurus integriti rujukan merentas pangkalan data. Pendekatan optimum melibatkan penyatuan jadual berkaitan dalam satu pangkalan data untuk pengurusan data yang dipermudahkan dan penguatkuasaan kekangan yang cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Perhubungan Utama Asing Merentas Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!