我的列目前为varchar(100)
,我想将其设为10000
。
就像
一样简单alter table table_name set column col_name varchar (10000);
我害怕破坏现有数据。如果我运行此查询,我会没事吗?或者我应该以另一种方式alter
专栏吗?
谢谢!
答案 0 :(得分:91)
增加varchar列的大小是安全的。你不会破坏你的数据。
如果它让您高枕无忧,请记住,您可以在更改数据结构之前始终运行数据库备份。
顺便说一下,正确的语法是:
ALTER TABLE table_name MODIFY col_name VARCHAR(10000)
此外,如果列先前允许/不允许空值,则应在列类型之后将相应的语法添加到alter table语句的末尾。
答案 1 :(得分:44)
我通常使用这句话:
ALTER TABLE `table_name`
CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);
但是,我认为SET也会起作用,从未尝试过。 :)
答案 2 :(得分:18)
我想解释不同的alter table语法 - 请参阅MySQL documentation
用于添加/删除列的默认值:
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]
答案 3 :(得分:1)
我为这个工作过:
ALTER TABLE tablename MODIFY fieldname VARCHAR(128)NOT NULL;
答案 4 :(得分:-1)
我正在使用mysql,以下语法对我来说效果很好,
ALTER TABLE table_name MODIFY col_name VARCHAR(12);
答案 5 :(得分:-1)
对我来说,这很奏效-
ALTER TABLE表名称 ALTER COLUMN column_name VARCHAR(50)
答案 6 :(得分:-4)
使用以下语法: alter table table_name modify column col_name varchar(10000);