MySQL 5.0.45
Jaka jest składnia zmieniająca tabelę, aby kolumna mogła mieć wartość NULL, na przemian, co jest nie tak z tym:
ALTER mytable MODIFY mycolumn varchar(255) null;
Zinterpretowałem instrukcję jako po prostu uruchom powyższą i odtworzy kolumnę, tym razem pozwalając na null. Serwer mówi mi, że mam błędy składniowe. Po prostu ich nie widzę.
Odpowiedzi:
Chcesz:
Domyślnie kolumny są zerowane. Dopóki kolumna nie jest zadeklarowana
UNIQUE
lubNOT NULL
, nie powinno być żadnych problemów.źródło
TIMESTAMP
, który w zależności od wersji MySQL i konfiguracji może byćNOT NULL
określony,NULL
jak sugeruje @ConroyP, jest bardziej poprawny.Błąd składniowy jest spowodowany brakującą „tabelą” w zapytaniu
źródło
NULL
, nie czyni tej odpowiedzi bardziej „poprawną” niż odpowiedź zaakceptowana? Wiedza, że kolumny są domyślnie zerowalne (jak wspomniano w zaakceptowanej odpowiedzi), jest pomocna w odniesieniu do tego konkretnego pytania.Moje rozwiązanie:
Na przykład:
źródło
W niektórych okolicznościach (jeśli pojawi się komunikat „ERROR 1064 (42000): Wystąpił błąd w składni SQL; ...”), musisz zrobić
źródło
Moje rozwiązanie jest takie samo jak @Krishnrohit:
Właściwie ustawiłem kolumnę jako,
NOT NULL
ale przy powyższym zapytaniu została zmieniona naNULL
.PS Wiem, że to stary wątek, ale wydaje się, że nikt nie potwierdza, że
CHANGE
jest to również poprawne.źródło
Posługiwać się:
ALTER TABLE mytable MODIFY mycolumn VARCHAR(255);
źródło