Menambah Kekangan CHECK Tersuai dalam MySQL
Walaupun dokumentasi MySQL menyertakan contoh kekangan CHECK, adalah penting untuk ambil perhatian bahawa kekangan ini bukan pada masa ini disokong oleh enjin. Akibatnya, mentakrifkannya dalam definisi jadual anda tidak akan menguatkuasakan sebarang sekatan pada nilai data.
Penjelasan
Menurut manual MySQL, "Klausa CHECK dihuraikan tetapi diabaikan oleh semua enjin storan." Ini bermakna MySQL hanya akan melangkau definisi kekangan CHECK tanpa menggunakannya pada jadual.
Penyelesaian
Malangnya, MySQL tidak menyediakan cara langsung untuk menguatkuasakan CHECK kekangan. Walau bagaimanapun, satu penyelesaian yang mungkin adalah dengan mencipta pencetus. Pencetus ialah objek pangkalan data yang bertindak balas kepada peristiwa tertentu, seperti operasi INSERT, UPDATE atau DELETE pada jadual.
Sebagai contoh, anda boleh mencipta pencetus yang menyemak nilai atribut status sebelum membenarkan INSERT atau Operasi KEMASKINI akan berlaku. Berikut ialah contoh coretan kod untuk pencetus sedemikian:
Penyelesaian Alternatif
Jika anda memerlukan pangkalan data yang menyokong kekangan CHECK, pertimbangkan untuk menggunakan sumber terbuka alternatif RDBMS seperti PostgreSQL. PostgreSQL menawarkan sokongan teguh untuk kekangan CHECK dan merupakan pilihan yang berdaya maju untuk mengurus integriti data.
Atas ialah kandungan terperinci Adakah Sokongan MySQL SEMAK Kekangan, dan Jika Tidak, Apakah Alternatifnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!