Ответ 1
Обычно я использую это утверждение:
ALTER TABLE `table_name`
CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);
Но я думаю, что SET тоже будет работать, никогда не пробовал.:)
У меня есть столбец, который в настоящее время varchar(100)
, и я хочу сделать его 10000
.
это так просто, как
alter table table_name set column col_name varchar (10000);
Я боюсь испортить данные. Будет ли я в порядке, если я запустил этот запрос? Или я должен сделать я alter
столбец другим способом?
Спасибо!
Обычно я использую это утверждение:
ALTER TABLE `table_name`
CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);
Но я думаю, что SET тоже будет работать, никогда не пробовал.:)
Безопасно увеличить размер столбца varchar. Вы не испортите свои данные.
Если это поможет вашему спокойствию, имейте в виду, вы всегда можете запустить резервное копирование базы данных, прежде чем изменять свои структуры данных.
Кстати, правильный синтаксис:
ALTER TABLE table_name MODIFY col_name VARCHAR(10000)
Кроме того, если столбец, ранее разрешенный/не разрешающий нули, вы должны добавить соответствующий синтаксис в конец инструкции alter table после типа столбца.
Я бы хотел объяснить различные синтаксисы таблиц альтернатив - см. документацию MySQL
Для добавления/удаления значений по умолчанию для столбца:
ALTER TABLE table_name
ALTER COLUMN col_name {SET DEFAULT literal | DROP DEFAULT}
Чтобы переименовать столбец, изменив его тип данных и, возможно, изменив порядок столбцов:
ALTER TABLE table_name
CHANGE [COLUMN] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
Для изменения типа данных столбца и необязательного изменения порядка столбцов:
ALTER TABLE table_name
MODIFY [COLUMN] col_name column_definition
[FIRST | AFTER col_name]
Для меня это сработало:
ALTER TABLE tablename MODIFY имя поля VARCHAR (128) NOT NULL;
используйте этот синтаксис: alter table table_name изменить столбец col_name varchar (10000);