Rumah >pangkalan data >tutorial mysql >Bagaimanakah Fungsi Boleh Meningkatkan Kekangan Semakan untuk Mengesahkan Data Terhadap Jadual Lain?
Menggunakan Fungsi untuk Menguatkan Kekangan Semak
Meningkatkan fungsi kekangan semakan kadangkala boleh menimbulkan cabaran, seperti yang ditunjukkan oleh situasi di mana seseorang mesti mengesahkan data terhadap jadual lain semasa sisipan. Menggunakan subkueri dalam senario ini mencetuskan ralat, merujuk kepada larangan binaan sedemikian dalam definisi kekangan semak.
Nasib baik, terdapat pendekatan alternatif yang memintas sekatan yang dikenakan ke atas kekangan cek. Dengan mencipta fungsi yang menggabungkan pertanyaan yang diingini dan menghasilkan nilai skalar, kami boleh memasukkan fungsi pertanyaan ke dalam kekangan semakan. Coretan kod berikut menggambarkan teknik ini:
CREATE FUNCTION myFunction ( @field DATATYPE(?) ) RETURNS VARCHAR(5) AS BEGIN IF EXISTS (SELECT* FROM Table2 WHERE MYFIELD = @field) return 'True' return 'False' END
Dengan adanya fungsi ini, kita boleh menyepadukan dengan lancar ke dalam kekangan semak menggunakan sintaks berikut:
ALTER TABLE Table1 WITH CHECK ADD CONSTRAINT CK_Code CHECK (myFunction(MYFIELD) = 'True')
Dengan menerima pendekatan ini , kami meluaskan keupayaan kekangan semakan dengan berkesan, membolehkan kami mengesahkan data terhadap jadual luaran dan menguatkuasakan kompleks peraturan perniagaan tanpa menggunakan pencetus.
Atas ialah kandungan terperinci Bagaimanakah Fungsi Boleh Meningkatkan Kekangan Semakan untuk Mengesahkan Data Terhadap Jadual Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!