Maison  >  Article  >  base de données  >  Comment interroger et définir sql_mode dans MySQL

Comment interroger et définir sql_mode dans MySQL

青灯夜游
青灯夜游avant
2021-09-07 19:24:162811parcourir

Comment interroger et définir sql_mode dans

MySQL ? L'article suivant vous présentera les méthodes de requête et de configuration de sql_mode dans MySQL.

Comment interroger et définir sql_mode dans MySQL

Requête et paramètres sql_mode de MySQL

1, exécutez SQL pour afficher[Recommandations associées : tutoriel vidéo mysql]

select @@session.sql_mode;

Niveau global : Afficher

select @@global.sql_mode;

2, modifier

set @@session.sql_mode='xx_mode'set session sql_mode='xx_mode'

Niveau global : Modifier

set global sql_mode='xx_mode';set @@global.sql_mode='xx_mode';

la session peut être omise, la session par défaut n'est valide que pour la session en cours
La modification globale nécessite des autorisations avancées, elle ne prendra effet qu'à la prochaine connexion, n'affecte pas la session en cours, et deviendra invalide après le redémarrage de MySQL. Étant donné que MySQL relira la valeur correspondante dans le fichier de configuration au redémarrage, si elle doit être permanente, vous devez modifier la valeur dans le fichier de configuration.

vi /etc/my.cnf
[mysqld]sql-mode = "xx_mode"

Enregistrez et quittez, redémarrez le serveur, cela prendra effet définitivement

sql_mode Les valeurs communes sont les suivantes :

ONLY_FULL_GROUP_BY

Pour les opérations d'agrégation GROUP BY, si les colonnes de SELECT ne le font pas apparaît dans GROUP BY, alors ce SQL est illégal car la colonne n'est pas dans la clause GROUP BY

NO_AUTO_VALUE_ON_ZERO

Cette valeur affecte l'insertion de colonnes à augmentation automatique. Dans les paramètres par défaut, l'insertion de 0 ou NULL représente la génération de la prochaine valeur auto-augmentante. Cette option est utile si l'utilisateur souhaite insérer une valeur de 0 et que la colonne s'augmente automatiquement.

STRICT_TRANS_TABLES

Dans ce mode, si une valeur ne peut pas être insérée dans une table de transactions, l'opération en cours sera interrompue, et il n'y aura aucune limite sur les tables non-transaction

NO_ZERO_IN_DATE

En mode strict , non autorisé La date ou le mois est zéro Tant que le mois ou le jour de la date contient une valeur 0, une erreur sera signalée, sauf pour '0000-00-00'

NO_ZERO_DATE

Set. cette valeur, la base de données mysql ne permet pas l'insertion de dates nulles, insérer Une date zéro générera une erreur au lieu d'un avertissement. Tout élément de l'année, du mois et du jour qui n'est pas 0 répond aux exigences. Seul '0000-00-00' signalera une erreur

ERROR_FOR_pISION_BY_ZERO

Pendant le processus INSERT ou UPDATE, si les données sont divisées. par zéro, une erreur se produira à la place. Si le mode n'est pas donné, MySQL renvoie NULL lorsque les données sont divisées par zéro
update table set num = 5 / 0 ; une erreur sera signalée après la définition du mode. S'il n'est pas défini, la modification est réussie. est nul

NO_AUTO_CREATE_USER

Désactiver GRANT pour la création d'utilisateurs avec des mots de passe vides

NO_ENGINE_SUBSTITUTION

Lance une erreur si le moteur de stockage requis est désactivé ou n'est pas compilé. Lorsque cette valeur n'est pas définie, le moteur de stockage par défaut est utilisé à la place et une exception est levée

PIPES_AS_CONCAT

traite "||" comme un opérateur de connexion de chaîne au lieu d'un opérateur OR, ce qui est identique à la base de données Oracle. Elle est également similaire à la fonction de concaténation de chaînes Concat

ANSI_QUOTES

Après avoir activé ANSI_QUOTES, les guillemets doubles ne peuvent pas être utilisés pour citer la chaîne car elle est interprétée comme un identifiant

Pour plus de connaissances liées à la programmation, veuillez visiter : Vidéos de programmation ! !

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer