我有一个专栏目前是
varchar(100)
,我想将其制作为 10000
。
是不是这么简单
alter table table_name set column col_name varchar (10000);
我担心会损坏现有数据。如果我运行这个查询可以吗?或者我应该用另一种方式
alter
专栏?
增加 varchar 列的大小是安全的。您不会损坏您的数据。
如果这有助于您安心,请记住,您可以在更改数据结构之前始终运行数据库备份。
顺便说一下,正确的语法是:
ALTER TABLE table_name MODIFY col_name VARCHAR(10000)
此外,如果列之前允许/不允许空值,则应将适当的语法添加到 alter table 语句的末尾、列类型之后。
我通常使用这个说法:
ALTER TABLE `table_name`
CHANGE COLUMN `col_name` `col_name` VARCHAR(10000);
但是,我认为SET也可以,从来没有尝试过。 :)
我想解释不同的 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 表名 MODIFY 字段名 VARCHAR(128) NOT NULL;
我发帖只是为了以防万一有人最近有这个问题,就像我一样。
要更改数据类型以接受 Mysql 中更大的数据,请声明 在实现(在本例中)新的较大数据类型之前两次列名:
ALTER TABLE TableName
CHANGE CurrentColumnName CurrentColumnName NewDataType;
我正在使用 mysql,下面的语法对我来说效果很好,
ALTER TABLE table_name MODIFY col_name VARCHAR(12);
对我来说这很有效-
更改表表名 更改列列名称 VARCHAR(50)