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....

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))


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.


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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.