Définition du sql_mode global dans MySQL
Dans MySQL, sql_mode définit le comportement par défaut du serveur de base de données. La définition de sql_mode applique globalement le mode configuré à toutes les connexions et sessions ultérieures. Cela diffère de la définition de sql_mode par session, qui affecte uniquement la connexion actuelle.
Lorsque vous rencontrez des erreurs lors de la configuration globale de sql_mode, il est important de revoir la syntaxe. La bonne façon de définir plusieurs modes dans un contexte global est :
SET GLOBAL sql_mode = 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLE', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'
Avantages des modes Global et Session
Global Modes :
Modes de session :
Paramètre préféré
Le paramètre préféré dépend de l'application et de l'environnement. Si un comportement cohérent est souhaité à tous les niveaux, il est recommandé de définir sql_mode globalement. Cependant, si des exigences de session spécifiques surviennent, les modes de session offrent la flexibilité nécessaire.
Définition permanente du sql_mode global
Pour rendre les modifications globales du sql_mode permanentes, elles doivent être configurées dans le fichier de configuration MySQL (par exemple, /etc/mysql/my.cnf sous Linux). Dans la section [mysqld], ajoutez ou modifiez l'option sql_mode. Par exemple :
[mysqld] sql_mode = NO_BACKSLASH_ESCAPES, STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION
Pour les versions plus récentes de MySQL (par exemple, 5.7.8 ou supérieure), le paramètre sql_mode peut nécessiter un trait d'union au lieu d'un trait de soulignement et de guillemets :
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
Consultez toujours la documentation MySQL pour connaître la syntaxe appropriée en fonction de la version de MySQL utilisée.
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!