Как изменить определение столбца 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);
MikeJ
источник
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);
Ниранджан Вадди
источник
11

Это должно сделать это:

ALTER TABLE test MODIFY locationExpert VARCHAR(120) 
Даниэль Риковски
источник