MySQL - 如何在不破坏现有数据的情况下增加数据库中现有列的varchar大小?

时间:2012-04-17 01:57:09

标签: mysql

我的列目前为varchar(100),我想将其设为10000

就像

一样简单
alter table table_name set column col_name varchar (10000);

我害怕破坏现有数据。如果我运行此查询,我会没事吗?或者我应该以另一种方式alter专栏吗?

谢谢!

7 个答案:

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