Pengenalan:
Apabila berurusan dengan berbilang pangkalan data, mewujudkan hubungan antara jadual adalah penting. Walau bagaimanapun, melaksanakan kekangan utama asing antara pangkalan data yang berbeza boleh menimbulkan cabaran. Artikel ini meneroka sebab ini berlaku dan menyediakan penyelesaian menggunakan pencetus pangkalan data.
Ralat dan puncanya:
Ralat yang dihadapi semasa cuba menambah kunci asing daripada lajur dalam Pangkalan Data2.table2 kepada kunci utama dalam Pangkalan Data1.table1 berpunca daripada fakta bahawa kebanyakan sistem pangkalan data tidak menyokong rujukan kunci asing merentas pangkalan data secara asli.
Penyelesaian: Pencetus pangkalan data
Untuk mewujudkan integriti rujukan antara jadual dalam pangkalan data yang berbeza, kami boleh memanfaatkan pencetus pangkalan data. Begini caranya:
Contoh 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 -- 在此处处理参照完整性错误 END END</code>
Petua Penting:
Walaupun pencetus pangkalan data menyediakan penyelesaian untuk perhubungan utama asing merentas pangkalan data, ini bukanlah penyelesaian yang optimum. Sebaik-baiknya, jadual harus berada dalam pangkalan data yang sama untuk menguatkuasakan sepenuhnya integriti rujukan dan mengekalkan konsistensi data.
Atas ialah kandungan terperinci Bagaimanakah Pencetus Pangkalan Data Boleh Menyelesaikan Cabaran Perhubungan Utama Asing Merentas Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!