Czy mogę zmienić kolumnę z NOT NULL na NULL bez jej upuszczania?

99

Musisz zmienić tabelę, aby zezwolić na wartości null w kolumnie - ale nie mogę usunąć kolumny ... czy mogę to zrobić? Próbowałem czegoś takiego:

ALTER TABLE myTable MODIFY myColumn NULL;

Ale bez skutku....

Todd Vance
źródło

Odpowiedzi:

205
ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL

gdzie {DataType}jest bieżący typ danych tej kolumny (na przykład intlub varchar(10))

Wil
źródło
51

Oczywiście że możesz.

ALTER TABLE myTable ALTER COLUMN myColumn int NULL

Wystarczy podstawić int na dowolny typ danych, jaki ma Twoja kolumna.

Mark S. Rasmussen
źródło
1
Właściwie twoja odpowiedź jest prawdziwa. ale nie została zaakceptowana jako najlepsza odpowiedź. phhhh. ponieważ to (ALTER TABLE myTable ALTER COLUMN myColumn {DataType} NULL) nie działa
UfukSURMEN
1
Próbowałem alter columni nie działało z najnowszym serwerem mysql. Próbowałem modify columni zadziałało. Dziwne ...
Kostas Andrianos
1
@UfukSURMEN, {DataType} oznacza, że ​​zamiast tego należy podać dowolny typ danych. Odpowiedzi są zasadniczo takie same, Mark po prostu wyjaśnił sobie bardziej (co powinno dać mu akceptowaną odpowiedź, ale to nie jest mój wybór).
PrinceTyke
@PrinceTyke Dokładnie.
UfukSURMEN
-1

W przypadku MYSQL

ALTER TABLE myTable MODIFY myColumn {DataType} NULL
Prakash Bhandari
źródło
1
nie wiem, dlaczego ta odpowiedź została obniżona, ZMIEŃ nazwę kolumny działa dla mySql, ale nie ZMIEŃ nazwę kolumny
Venkat
@Venkat Myślę, ponieważ pytanie jest oznaczone tagiem sql-server.
orangecaterpillar