DBAtlas · Atlas d'exploitation des bases de données

1364: Field 'name' doesn't have a default value (le champ 'name' n'a pas de valeur par défaut)

MySQL

Que 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.

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur