1364: Field 'name' doesn't have a default value (le champ 'name' n'a pas de valeur par défaut)
MySQLQue signifie cette erreur ?
Une ligne a été insérée sans valeur pour une colonne définie NOT NULL sans DEFAULT. En mode SQL strict, MySQL lève une erreur car il ne peut pas renseigner automatiquement la colonne obligatoire manquante.
Cause
Une colonne obligatoire (NOT NULL, sans DEFAULT) a été omise de l'INSERT, et STRICT_TRANS_TABLES/STRICT_ALL_TABLES est activé dans sql_mode. Une application écrite pour l'ancien mode permissif rencontre cette erreur lorsqu'elle est déplacée sur un serveur avec le mode strict activé.
Comment la corriger
Ajoutez une valeur pour la colonne manquante dans l'INSERT, ou définissez un DEFAULT pertinent sur la colonne : ALTER TABLE my_table MODIFY my_column ... NOT NULL DEFAULT 'value'; Si la colonne est réellement facultative, autorisez NULL. sql_mode peut être assoupli comme contournement temporaire/de compatibilité, mais conserver le mode strict est recommandé pour la qualité des données.
Autres entrées pour ce moteur
- 3140ER_INVALID_JSON_TEXT: Invalid JSON text (texte JSON invalide)
- 1526ER_NO_PARTITION_FOR_GIVEN_VALUE: Table has no partition for value (aucune partition de la table pour cette valeur)
- 1049Unknown database 'name'
- 1206The total number of locks exceeds the lock table size (le nombre total de verrous dépasse la taille de la table des verrous)
- 1236Got fatal error 1236 from master when reading data from binary log (erreur fatale 1236 reçue du master lors de la lecture du binary log)
- 1129Host 'host' is blocked because of many connection errors (l'hôte 'host' est bloqué en raison de nombreuses erreurs de connexion)
- 1194Table 'name' is marked as crashed and should be repaired (la table 'name' est marquée comme endommagée et doit être réparée)