Как изменить определение столбца MySQL?


156

У меня есть таблица MySQL с именем test:

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

Я хочу изменить столбец locationExpect на:

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

Как это можно сделать быстро?

Ответы:


273

Вы хотите изменить таблицу после ее создания? Если это так, вам нужно использовать alter table , в частности:

ALTER TABLE tablename MODIFY COLUMN new-column-definition

например

ALTER TABLE test MODIFY COLUMN locationExpect VARCHAR(120);

5
Итак ... MySQLWorkbench имеет ошибку проверки синтаксиса, которая отклоняет эту команду. Но это правильная команда.
Стивен Лу

Осторожно: приведенный выше пример также изменит COLUMN на Null = Да, по умолчанию = Null. Вам нужно указать разные значения, если вы не хотите Null.
Гай Гордон

@GuyGordon в исходном вопросе Mask хотел изменить столбец с NOT NULLразрешения на пустые значения, так что я думаю, что этот пример все еще в порядке. Согласитесь, что потребуется небольшое изменение, если требуется другое значение по умолчанию.
mikej

43

Синтаксис для изменения имени столбца в MySql :

alter table table_name change old_column_name new_column_name data_type(size);

Пример:

alter table test change LowSal Low_Sal integer(4);

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.