66

我有一个当前的专栏,varchar(100)我想制作它10000

是不是很简单

alter table table_name set column col_name varchar (10000);

我害怕破坏现有的数据。如果我运行这个查询我会好吗?或者我应该以另一种方式做我alter的专栏吗?

谢谢!

4

7 回答 7

117

增加 varchar 列的大小是安全的。您不会损坏您的数据。

如果它有助于您安心,请记住,您始终可以在更改数据结构之前运行数据库备份

顺便说一句,正确的语法是:

ALTER TABLE table_name MODIFY col_name VARCHAR(10000)

此外,如果列之前允许/不允许空值,则应在列类型之后的 alter table 语句末尾添加适当的语法。

于 2012-04-17T01:59:30.860 回答
62

我通常使用这种说法:

ALTER TABLE `table_name`
  CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);

但是,我认为 SET 也可以,从未尝试过。:)

于 2012-04-17T02:04:51.760 回答
22

我想解释不同的 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]
于 2013-12-24T07:41:24.627 回答
1

对我来说,这是一个:

ALTER TABLE 表名 MODIFY 字段名 VARCHAR(128) NOT NULL;

于 2017-04-09T15:22:42.967 回答
-3

我正在使用 mysql,下面的语法对我来说效果很好,

ALTER TABLE table_name MODIFY col_name VARCHAR(12);
于 2018-05-29T20:35:25.527 回答
-3

对我来说,这已经奏效了-

ALTER TABLE table_name ALTER COLUMN column_name VARCHAR(50)

于 2018-07-31T10:31:25.063 回答
-5

使用这个语法:alter table table_name modify column col_name varchar (10000);

于 2017-08-06T07:23:45.363 回答