126 votes

Puis-je faire passer une colonne de NOT NULL à NULL sans la supprimer ?

J'ai besoin de modifier une table pour autoriser les valeurs nulles dans une colonne, mais je ne peux pas supprimer la colonne... Est-ce possible ? J'essayais quelque chose comme :

ALTER TABLE myTable MODIFY myColumn NULL;

Mais en vain....

244voto

Wil Points 3821
ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL

{DataType} est le type de données actuel de cette colonne (Par exemple int ou varchar(10) )

62voto

Mark S. Rasmussen Points 13313

Bien sûr que vous pouvez.

ALTER TABLE myTable ALTER COLUMN myColumn int NULL

Remplacez simplement int par le type de données de votre colonne.

1 votes

En fait, votre réponse est vraie, mais elle n'a pas été acceptée comme la meilleure réponse car ceci (ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL) ne fonctionne pas.

2 votes

J'ai essayé avec alter column et cela n'a pas fonctionné avec le dernier serveur mysql. J'ai essayé avec modify column et ça a marché. C'est étrange...

2 votes

@UfukSURMEN, le {DataType} signifie que vous devez mettre votre type de données à la place de celui-ci. Les réponses sont essentiellement les mêmes, Mark s'est juste expliqué davantage (ce qui aurait dû lui valoir la réponse acceptée, mais ce n'est pas moi qui décide).

1voto

VipulVyas Points 21

La syntaxe est très basée sur le service de base de données

SQL Server / MS Access :

ALTER TABLE table_name
ALTER COLUMN column_name datatype NULL;

My SQL / Oracle (version antérieure 10G) :

ALTER TABLE table_name
MODIFY COLUMN column_name datatype NULL;

Oracle 10G et versions ultérieures :

ALTER TABLE table_name
MODIFY column_name datatype NULL;

si vous souhaitez définir une valeur par défaut :

ALTER TABLE table_name
ALTER COLUMN column_name datatype DEFAULT default_value;

-1voto

Prakash Bhandari Points 169

Pour MYSQL

ALTER TABLE myTable MODIFY myColumn {DataType} NULL

3 votes

Je ne sais pas pourquoi cette réponse a été déclassée, MODIFY nom de colonne fonctionne pour mySql mais pas ALTER nom de colonne

4 votes

@Venkat Je pense que parce que la question est étiquetée sql-server.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X