Rumah >pangkalan data >tutorial mysql >Bolehkah Semak Kekangan Data Rujukan Silang Antara Jadual Menggunakan Fungsi?
Menggunakan Fungsi untuk Menentukan Kekangan Semak
Apabila bekerja dengan berbilang jadual, ia mungkin diperlukan untuk memastikan integriti data merentasnya. Satu cara untuk mencapai ini adalah melalui kekangan semak. Walau bagaimanapun, bolehkah kekangan semakan berkaitan dengan jadual lain, secara berkesan merujuk silang data?
Cabaran dan Penyelesaian
Pertimbangkan senario di mana kita mempunyai dua jadual: ProjectTimeSpan dengan lajur StartDate dan EndDate, dan SubProjectTimeSpan juga mengandungi lajur StartDate dan EndDate. Bagaimanakah kita boleh menguatkuasakan kekangan semakan yang menghalang tarikh SubProjectTimeSpan daripada jatuh di luar tarikh ProjectTimeSpan?
Jawapannya terletak pada menggunakan fungsi dalam definisi kekangan semak. Dengan mencipta fungsi yang mendapatkan semula data yang berkaitan daripada ProjectTimeSpan, kami boleh mengesahkan nilai SubProjectTimeSpan terhadapnya.
Contoh
Berikut ialah contoh kekangan semak menggunakan fungsi :
alter table YourTable add constraint chk_CheckFunction check (dbo.CheckFunction() = 1)
Dalam contoh ini, fungsi dbo.CheckFunction() bertanggungjawab untuk menyemak nilai SubProjectTimeSpan terhadap ProjectTimeSpan. Takrif fungsi boleh jadi seperti:
create function dbo.CheckFunction() returns int as begin return (select 1 where ...) -- Your validation logic goes here end
Fungsi ini membenarkan kami merujuk silang data daripada ProjectTimeSpan dan mengesahkan integriti data jadual SubProjectTimeSpan.
Atas ialah kandungan terperinci Bolehkah Semak Kekangan Data Rujukan Silang Antara Jadual Menggunakan Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!