Avec les tables de type MyISAM, MySQL utilise un verrouillage extrêmement rapide (plusieurs lectures / une seule écriture). Le plus gros problème avec ce type de table survient quand vous avez un mélange de flux de modifications et des sélections lentes sur la même table. Si c'est une problème sur plusieurs tables, vous pouvez utiliser un autre type de table pour celles ci. See Chapitre 14, Moteurs de tables MySQL et types de table.
MySQL peut utiliser à la fois des tables transactionnelles et des tables non-transactionnelle. Pour pouvoir travailler tranquillement avec des tables non-transactionnelles (qui n'ont pas la possibilité de revenir en arrière si quelque chose se passe mal) MySQL suit les règles suivantes:
Toutes les colonnes ont une valeur par défaut.
Si vous insérez une mauvaise valeur dans une colonne (par
exemple NULL
dans une colonne
NOT NULL
, ou encore une valeur numérique
trop grande dans une colonne numérique), MySQL prendra en
compte "la meilleure valeur possible" plutôt que de sortir
une erreur. Pour les valeurs numériques, il s'agit de 0, de
la valeur la plus petite possible, ou de la valeur la plus
grande possible. Pour les chaînes, il s'agit soit d'une
chaîne vide, soit de la chaîne la plus longue que peut
contenir la colonne.
Toutes les expressions calculées retournent une valeur qui
peut être utilisées à la place d'afficher un message
d'erreur. Par exemple, 1/0 retourne NULL
Pour plus d'informations, voyez See Section 1.5.6, « Comment MySQL gère les contraintes ».
Ce qui précède signifie qu'il ne faut pas que le contrôle du contenu des champs soit fait au niveau de MySQL, mais au niveau de l'application.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.