Rumah >pangkalan data >tutorial mysql >Mengapa Sokongan MySQL Tidak SEMAK Kekangan, dan Apakah Alternatifnya?
Menambah Kekangan CHECK Tersuai dalam MySQL
Anda mungkin menghadapi masalah apabila cuba menambah kekangan SEMAK tersuai pada jadual MySQL. Kekangan ini, yang mengehadkan nilai yang boleh dimasukkan ke dalam lajur berdasarkan syarat yang ditentukan, tidak disokong secara asli dalam MySQL.
Pertimbangkan kod yang disediakan, yang cuba menguatkuasakan kekangan CHECK pada lajur status untuk hanya benarkan nilai 'a', 'd' dan 'u':
CREATE TABLE `Participants` ( ... CONSTRAINT `participants_ibfk_2` CHECK (status IN ('a','d','u')) ... );
Walau bagaimanapun, selepas melaksanakan kod ini dalam MySQL, anda akan perasan bahawa kekangan CHECK diabaikan. Ini kerana, seperti yang dinyatakan dalam manual MySQL, klausa CHECK yang ditakrifkan dalam definisi jadual tidak disokong oleh enjin storan MySQL.
Oleh itu, adalah penting untuk memahami bahawa walaupun MySQL membenarkan anda mentakrifkan kekangan CHECK, kekangan ini tidak menguatkuasakan sebarang sekatan ke atas data yang dimasukkan ke dalam jadual.
Penyelesaian
Untuk menguatkuasakan integriti data dan mengekang nilai lajur seperti yang dimaksudkan, anda boleh mempertimbangkan penyelesaian berikut:
Atas ialah kandungan terperinci Mengapa Sokongan MySQL Tidak SEMAK Kekangan, dan Apakah Alternatifnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!