2016-03-10 1 views
0

J'ajoute une colonne à une table, mais elle me dit que je ne définis pas une valeur par défaut pour une autre colonne de la table;L'ajout d'une colonne nécessite une valeur par défaut pour une autre colonne?

ALTER TABLE `myDatabase`.`myTable` ADD myNewColumn varchar(2); 

me donne la réponse

ERROR 1067 (42000): Invalid default value for 'modifiedDate'

Je ne comprends pas pourquoi je dois définir une valeur par défaut pour une colonne quand je suis juste modifier une table?

+0

Est-ce que ModifiedDate permet des valeurs nulles? –

+1

Mettez votre table de création sql ici –

+1

Votre déclaration est une ligne, mais vous obtenez une erreur indiquant qu'il y a une 5ème ligne ... – jarlh

Répondre

0

Le problème était avec ma définition de table, pas la commande elle-même.

Le tableau avait ModifiedDate mal réglé, je suppose, je l'ai changé à utiliser à la place CURRENT_TIMESTAMP avec la commande suivante

ALTER TABLE myTable MODIFY column modifiedDate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;

Après cela, tout fonctionnait. Voici la description de cette ligne avant:

| Field | Type | Null| Key | Default
| modifiedDate | timestamp | NO | | 0000-00-00 00:00:00

Et après:

| Field | Type | Null| Key | Default
| modifiedDate | timestamp | NO | | CURRENT_TIMESTAMP