Lorsque l'on travaille avec MySQL, on rencontre souvent le besoin de modifier le paramètre SQL_MODE. Ce mode régit une gamme de comportements SQL et de configurations d'analyseur, affectant des facteurs tels que la validation des données, la gestion des transactions, etc.
La syntaxe pour définir plusieurs modes dans SQL_MODE utilisant la commande SET est correct :
SET GLOBAL SQL_MODE='NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLE','NO_AUTO_CREATE_USER','NO_ENGINE_SUBSTITUTION'
Lorsque vous êtes confronté à un scénario tel que la mise à jour de la base de données avec des valeurs UNC en utilisant différents utilisateurs , définir un mode global pour NO_BACKSLASH_ESCAPES est logique car cela garantit que tous les utilisateurs sont concernés, quels que soient leurs paramètres de session.
Malheureusement, la modification directe des paramètres globaux à l'aide de SET n'est pas persistante et se réinitialise après le redémarrage de MySQL. Pour rendre les modifications permanentes, définissez le mode dans le fichier de configuration (/etc/mysql/my.cnf) :
[mysqld] sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Pour les versions MySQL plus récentes (par exemple, 5.7.8 ), utilisez la syntaxe suivante :
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
Pour les paramètres SQL_MODE persistants à l'échelle du système qui affectent tous les utilisateurs, la définition d'un mode global est préférable approche. Des modifications permanentes doivent être apportées au fichier de configuration, garantissant que le comportement SQL souhaité est cohérent d'une session à l'autre.
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!