Ajout de contraintes CHECK personnalisées dans MySQL
Vous pouvez rencontrer des problèmes lorsque vous tentez d'ajouter des contraintes CHECK personnalisées aux tables MySQL. Ces contraintes, qui restreignent les valeurs pouvant être saisies dans une colonne en fonction d'une condition spécifiée, ne sont pas nativement prises en charge dans MySQL.
Considérez le code fourni, qui tente d'appliquer une contrainte CHECK sur la colonne d'état pour n'autoriser que les valeurs 'a', 'd' et 'u' :
CREATE TABLE `Participants` ( ... CONSTRAINT `participants_ibfk_2` CHECK (status IN ('a','d','u')) ... );
Cependant, lors de l'exécution de ce code dans MySQL, vous remarquerez que le CHECK la contrainte est ignorée. En effet, comme indiqué dans le manuel MySQL, les clauses CHECK définies dans les définitions de table ne sont pas prises en charge par les moteurs de stockage MySQL.
Par conséquent, il est essentiel de comprendre que même si MySQL vous permet de définir des contraintes CHECK, ces contraintes n'appliquez aucune restriction sur les données saisies dans la table.
Solutions de contournement
Pour appliquer l'intégrité des données et contraindre les valeurs des colonnes comme prévu, vous pouvez envisager les solutions de contournement suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!