CHANGE DATA TYPE
命令功能
CHANGE命令用于将数据类型从INT更改为BIGINT或将Decimal精度从低精度改为高精度。
命令语法
ALTER TABLE [db_name.]table_name CHANGE col_name col_name changed_column_type;
参数描述
参数 |
描述 |
---|---|
db_name |
数据库名。若未指定,则选择当前数据库。 |
table_name |
表名。 |
col_name |
表中的列名称。列名称包含字母,数字和下划线(_)。 |
changed_column_type |
所要更改为的新数据类型。 |
注意事项
- 仅在没有数据丢失的情况下支持将Decimal数据类型从较低精度更改为较高精度
- 无效场景:将Decimal数据精度从(10,2)更改为(10,5)无效,因为在这种情况下,只有scale增加,但总位数保持不变。
- 有效场景:将Decimal数据精度从(10,2)更改为(12,3)有效,因为总位数增加2,但是scale仅增加1,这不会导致任何数据丢失。
- 将Decimal数据类型从较低精度更改为较高精度,其允许的最大精度(precision,scale)范围为(38,38),并且只适用于不会导致数据丢失的有效提升精度的场景。
示例
系统响应
通过运行DESCRIBE命令,将显示被修改列变更后的数据类型。