Jak zmienić definicję kolumny MySQL?

156

Mam tabelę MySQL o nazwie test:

create table test(
    locationExpect varchar(120) NOT NULL;
);

Chcę zmienić lokalizację kolumny Oczekiwanie na:

create table test(
    locationExpect varchar(120);
);

Jak to zrobić szybko?

Maska
źródło

Odpowiedzi:

273

Masz na myśli zmianę tabeli po jej utworzeniu? Jeśli tak, musisz użyć alter table , w szczególności:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

na przykład

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);
mikej
źródło
5
Więc ... MySQLWorkbench ma błąd sprawdzania składni, który odrzuca to polecenie. Ale to właściwa komenda.
Steven Lu
Uwaga: powyższy przykład zmieni również COLUMN na Null = Yes, Default = Null. Musisz podać inne wartości, jeśli nie chcesz mieć wartości Null.
Guy Gordon
@GuyGordon w oryginalnym pytaniu Maska chciał zmienić kolumnę z NOT NULLna zezwalającą na wartości null, więc myślę, że ten przykład jest nadal w porządku. Zgadzam się, że potrzebna byłaby niewielka zmiana, gdyby potrzebna była inna wartość domyślna.
mikej
43

Składnia do zmiany nazwy kolumny w MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Przykład:

alter table test change LowSal Low_Sal integer(4);
Niranjan Vaddi
źródło
11

To powinno wystarczyć:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Daniel Rikowski
źródło