Maison > base de données > tutoriel mysql > Apprenez-vous une astuce pour corriger le paramètre sql_mode dans mysql

Apprenez-vous une astuce pour corriger le paramètre sql_mode dans mysql

醉折花枝作酒筹
Libérer: 2021-08-25 10:53:34
avant
3460 Les gens l'ont consulté

sql_mode est une variable qui est facilement négligée. La valeur par défaut est nulle. Avec ce paramètre, certaines opérations illégales peuvent être autorisées, comme autoriser l'insertion de certaines données illégales. Cette valeur doit être définie sur le mode strict dans l'environnement de production, de sorte que les bases de données dans les environnements de développement et de test doivent également être définies afin que les problèmes puissent être découverts pendant la phase de développement et de test.

1 Les autorisations avancées ne prennent effet qu'à la prochaine connexion, n'affectent pas la session en cours et deviennent invalides après le redémarrage de MySQL, car MySQL relira les valeurs correspondantes dans le fichier de configuration au redémarrage s'il en a besoin. pour être permanent, vous devez modifier la valeur dans le fichier de configuration.

select @@session.sql_mode;
Copier après la connexion
select @@global.sql_mode;
Copier après la connexion

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

Les valeurs communes de sql_mode sont les suivantes :

ONLY_FULL_GROUP_BY


Pour les opérations d'agrégation GROUP BY, si les colonnes de SELECT n'apparaissent pas 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

Définissez cette valeur. , la base de données mysql ne permet pas l'insertion de dates nulles, insérer des dates nulles 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 sera générée au lieu d'un avertissement. 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. num est nul

NO_AUTO_CREATE_USER

Désactivez GRANT pour créer des 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 d'épissage de chaîne Concat

ANSI_QUOTES

Après avoir activé ANSI_QUOTES, vous ne pouvez pas utiliser de guillemets doubles pour citer la chaîne car elle est interprétée comme un identifiant

Recommandations associées : "tutoriel mysql

"

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal