Maison  >  Article  >  base de données  >  Pourquoi est-ce que je reçois l'erreur « Le champ n'a pas de valeur par défaut » en mode MySQL STRICT ?

Pourquoi est-ce que je reçois l'erreur « Le champ n'a pas de valeur par défaut » en mode MySQL STRICT ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-05 12:40:02854parcourir

Why am I getting the

Erreur du mode MySQL STRICT : 1364 « Le champ n'a pas de valeur par défaut »

Dans une récente migration de MAMP vers Apache, MySQL et PHP, exécution de commandes INSERT a soudainement entraîné l'erreur suivante :

SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value

Ce problème est survenu en raison d'un changement dans le comportement par défaut de MySQL. Dans MySQL version 5.6.13, le mode STRICT est souvent activé, ce qui applique des règles plus strictes pour la validation des données. Par conséquent, les champs sans valeurs par défaut ne peuvent plus être laissés vides lors de l'insertion.

Résolution

Pour résoudre ce problème, il est nécessaire de modifier le paramètre du mode MySQL STRICT. Il existe deux solutions possibles :

  1. Changement temporaire : Exécutez la commande suivante dans votre console MySQL :

    SET GLOBAL sql_mode='';

    Cela désactivera temporairement STRICT mode pour toutes les requêtes ultérieures.

  2. Changement permanent : Modifiez votre fichier de configuration MySQL (my.cnf). Localisez le paramètre sql_mode et vérifiez que STRICT_ALL_TABLES ou toute autre option de mode strict n'est pas présente. Si vous les trouvez, commentez ou supprimez ces options.

Après avoir effectué l'une de ces modifications, redémarrez le serveur MySQL et les commandes INSERT devraient s'exécuter avec succès sans l'erreur "Le champ n'a pas de valeur par défaut". .

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:
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