MySQL est connu pour être très flexible avec la validation des
données. Les conversions silencieuses ne sont pas des pratiques
courantes parmi les autres SGBD. Au lieu de lancer des erreurs,
MySQL lance des warnings, ce que la majorité des applications ne
gèrent pas. (Est-ce que votre application fait un SHOW WARNINGS;
à chaque requête?)
Néanmoins, la variable SQL_MODE permet de contrôler ce
comportement. Plusieurs niveaux de validation peuvent donc être
assignés, partant d’une validation quasi absente (par défaut) à
une validation très stricte. Ce qui peut paraître comme une bonne
affaire me parait plutôt comme une très mauvaise idée.
Le problème avec le SQL_MODE c’est que par défaut, la valeur est
vide (oui oui!). Il n’y a pas de mode prédéfinie ce qui donne un
comportement très souple. Plusieurs personnes ne savent pas que
cette variable existe et construisent une application qui repose …
[Lire plus]