tidb表结构变更alter限制问题
程序员文章站
2022-07-13 10:03:03
...
root-11.11.136.102:3306:cat_test 15:02:46> show create table t_heartbeats\G
*************************** 1. row ***************************
Table: t_heartbeats
Create Table: CREATE TABLE `t_heartbeats` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`metric` varchar(128) NOT NULL DEFAULT '' COMMENT '指标名',
`domain` varchar(64) NOT NULL DEFAULT '' COMMENT '服务名',
`ip` varchar(24) NOT NULL DEFAULT '' COMMENT '实例ip',
`value` double NOT NULL DEFAULT '0.0' COMMENT '心跳值',
`metric_time` timestamp NOT NULL COMMENT '指标采集的时间戳',
`creation_time` timestamp NOT NULL COMMENT '记录创建时间',
PRIMARY KEY (`id`),
KEY `IDX_domain_ip_metric_time_metric_key` (`domain`,`ip`,`metric`,`metric_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=29990534731 COMMENT='心跳数据'
1 row in set (0.00 sec)
root-11.11.136.102:3306:cat_test 15:02:55>
root-11.11.136.102:3306:cat_test 14:59:46> alter table h_ct modify `id` varchar(64) NOT NULL COMMENT 'ID';
ERROR 1105 (HY000): unsupported modify column charset utf8 not match origin binary
root-11.11.136.102:3306:cat_test 14:59:49>
里面有介绍:在修改类型方面,只支持整数类型之间修改,字符串类型之间修改和 Blob 类型之间的修改,且只能使原类型长度变长。此外,不能改变列的 unsigned/charset/collate 属性
所以只有重建表,rename to,然后 create 。
root-11.11.136.102:3306:cat_test 15:03:53> alter table h_ct rename to t_c_bak;
Query OK, 0 rows affected (1.02 sec)
root-11.11.136.102:3306:cat_test 15:10:06> CREATE TABLE `t_heartbeats` (
-> `id` VARCHAR(64) NOT NULL COMMENT 'ID',
-> `metric` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '指标名',
-> `domain` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '服务名',
-> `ip` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '实例ip',
-> `value` DOUBLE NOT NULL DEFAULT '0.0' COMMENT '心跳值',
-> `metric_time` TIMESTAMP NOT NULL COMMENT '指标采集的时间戳',
-> `creation_time` TIMESTAMP NOT NULL COMMENT '记录创建时间',
-> PRIMARY KEY (`id`),
-> KEY `IDX_domain_ip_metric_time_metric_key` (`domain`,`ip`,`metric`,`metric_time`)
-> ) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=29990534731 COMMENT='心跳数据';
Query OK, 0 rows affected (1.02 sec)
root-11.11.136.102:3306:cat_test 15:10:39>
上一篇: TiDB ip改域名
下一篇: 数据库与TiDB的同步
推荐阅读