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?

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

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

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.