MySQL 5.0.45
Quelle est la syntaxe pour modifier une table afin de permettre à une colonne d'être nulle, sinon quel est le problème avec ceci:
ALTER mytable MODIFY mycolumn varchar(255) null;
J'ai interprété le manuel comme s'il suffisait d'exécuter ce qui précède et il recréerait la colonne, autorisant cette fois la valeur null. Le serveur me dit que j'ai des erreurs de syntaxe. Je ne les vois tout simplement pas.
Vous voulez ce qui suit:
ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);
Les colonnes sont nulles par défaut. Tant que la colonne n'est pas déclarée UNIQUE
ou NOT NULL
, il ne devrait y avoir aucun problème.
Votre erreur de syntaxe est due à l'absence d'une "table" dans la requête.
ALTER TABLE mytable MODIFY mycolumn varchar(255) null;
Ma solution:
ALTER TABLE table_name CHANGE column_name column_name type DEFAULT NULL
Par exemple:
ALTER TABLE SCHEDULE CHANGE date date DATETIME DEFAULT NULL;
Dans certaines circonstances (si vous obtenez "ERREUR 1064 (42000): vous avez une erreur dans votre syntaxe SQL; ..."), vous devez faire
ALTER TABLE mytable MODIFY mytable.mycolumn varchar(255);
Ma solution est la même que @Krishnrohit:
ALTER TABLE `table` CHANGE `column_current_name` `new_column_name` DATETIME NULL;
En fait, la colonne était définie sur NOT NULL
mais avec la requête ci-dessus, elle a été remplacée par NULL
.
P.S. Je sais que c'est un vieux fil, mais personne ne semble reconnaître que CHANGE
est également correct.
Si la colonne est un double
ALTER TABLE `tablename` CHANGE `column_name` `column_name` DOUBLE NULL;