web-dev-qa-db-fra.com

MySQL # 1364 - Le champ 'nom_colonne' n'a pas de valeur par défaut - Impossible d'insérer dans la base de données

J'ai récemment déplacé ma base de données MySQL vers un nouveau serveur et cela m'a posé des problèmes que j'ai récemment rencontrés avec MySQL auparavant. Mes colonnes de table sont définies sur "Par défaut => Aucune" et ma table a généré la valeur par défaut en fonction du type de données. Mais maintenant, lorsque j'essaie d'insérer dans une table, je reçois ce message d'erreur: "# 1364 - Le champ 'nom_colonne' n'a pas de valeur par défaut" et rien n'est inséré dans la table.

Que puis-je faire pour que le "Défaut" choisisse sa propre valeur?

9
NIKO_B

Il n'est pas enregistré définitivement dans la base de données car le champ 'nom_colonne' (et peut-être quelques autres) est coché comme "NON NUL". Cela signifie que la valeur de ce champ doit être autre que NULL (NULL - pas de données du tout)

Marquer les champs comme non nuls est généralement un excellent moyen de s'assurer que certaines données seront toujours présentes dans le champ. En fonction de vos besoins, vous pouvez également le marquer comme NULL afin qu'il ne génère jamais d'erreur et qu'il soit enregistré dans la base de données sans avoir besoin d'insérer quoi que ce soit dans un champ spécifié.

Cela signifie que vous avez 2 options:

  1. Marquez votre champ comme NULL (vérifiez d'abord si votre champ doit avoir une certaine valeur ou non).

    ALTER TABLE your_table MODIFIER LA COLONNE your_fieldyour_field VARCHAR (250) NULL;

  2. Ajoutez une valeur par défaut au champ, donc si aucune donnée n'est fournie lors de l'insertion, elle mettra quelque chose que vous avez défini. Par exemple:

    ALTER TABLE your_table MODIFIER LA COLONNE your_fieldyour_field VARCHAR (250) NOT NULL DEFAULT 'some_default_value';

    Et bien sûr, faites correspondre votre type de champ au champ que vous allez changer.

11
AwesomeGuy