Contrainte avec PRIMARY KEY / UNIQUE <<< |
Contraintes avec NOT NULL et DEFAULT | Constante avec ENUM et SET >>> |
1.8.6 Comment MySQL gère les contraintes 1.8 Quels standards respecte MySQL? 1 Informations générales Manuel de Référence MySQL 4.1 : Version Française . Contrainte avec PRIMARY KEY / UNIQUE ->Contraintes avec NOT NULL et DEFAULT . Constante avec ENUM et SET |
1.8.6.2 Contraintes avec NOT NULL et DEFAULT
Pour être capable de supporter facilement les tables non-transactionnelles, tous les champs de MySQL ont des valeurs par défaut. Si vous insérez une valeur ``invalide'' dans une colonne, comme NULL dans une colonne NOT NULL , ou une valeur numérique trop grand dans une colonne numérique, MySQL inscrit dans la colonne la ``meilleure valeur possible'', sans produire d'erreur :
La raison de cette règle ci-dessus est que nous ne pouvons pas vérifier ces conditions avant que la requête ne soit exécutée. Si nous rencontrons un problème après la modification de quelques lignes, nous ne pourront pas annuler la modification, car la table ne le supporte peut-être pas. L'alternative qui consiste à s'arrêter c'est pas envisageable non plus, car nous aurions alors fait la moitié du travail, ce qui sera alors le pire scénario. Dans ce cas, il vaut mieux faire "du mieux possible", et continuer comme si rien n'était arrivé. En MySQL 5.0, nous envisageons d'améliorer cela en fournissant des alertes de conversions automatique, ainsi qu'une option pour vous permettre d'annuler la commande si elle n'utilise que des tables transactionnelles. Ceci signifie qu'il ne faut pas compter sur MySQL pour vérifier le contenu des champs, mais de gérer cela au niveau de l'application. |
<< | Contraintes avec NOT NULL et DEFAULT | >> |
Contrainte avec PRIMARY KEY / UNIQUE | Comment MySQL gère les contraintes | Constante avec ENUM et SET |