Mysql
 sql >> Base de données >  >> RDS >> Mysql

Pourquoi est-il possible d'utiliser des valeurs de chaîne numériques pour définir des champs entiers dans MySQL, et est-ce une fonctionnalité qui fonctionnera toujours ?

MySQL est assez laxiste sur la plupart des choses, corrigeant par défaut ces erreurs en faisant tout ce qu'il peut pour ne pas se tromper.

MySQL a cependant un mode strict qui ne permettrait pas ce comportement

http://dev.mysql .com/doc/refman/5.7/en/sql-mode.html#sql-mode-strict

Pour plus d'informations.

Cette "fonctionnalité" peut également entraîner des problèmes de performances, comparer une piqûre à un int indexé rend l'index inutile (dans certains cas, l'optimiseur peut parfois le détecter et ne diffuser que l'entrée)