V7.5.6 执行语句报错Unsupported modify charset from gbk to binary

【TiDB 使用环境】 Poc
【TiDB 版本】V7.5.6
【操作系统】Centos7
【部署方式】单机部署
【集群数据量】
【集群节点数】
【问题复现路径】做过哪些操作出现的问题
数据库编码格式为GBK,排序规则为gbk_chinese_ci,执行sql报错:Unsupported modify charset from gbk to binary
语句为:alter table tx_m_dimension_field modify column c_order integer null

【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】


这是表结构

ALTER TABLE tx_m_dimension_field
MODIFY COLUMN c_order INTEGER NULL CHARACTER SET gbk;
这样试下


1064 - You have an error in your SQL syntax; check the manual that corresponds to your TiDB version for the right syntax to use line 1 column 77 near “CHARACTER SET gbk”

不行只能新加字段然后改名了

  1. 首先添加新列:
ALTER TABLE tx_m_dimension_field 
ADD COLUMN c_order_new INTEGER NULL;
  1. 更新数据:
UPDATE tx_m_dimension_field 
SET c_order_new = c_order;
  1. 删除原列并重命名新列:
ALTER TABLE tx_m_dimension_field DROP COLUMN c_order;
ALTER TABLE tx_m_dimension_field CHANGE COLUMN c_order_new c_order INTEGER NULL;

我修改编码为UTF-8后,重新建表,就可以执行alter table tx_m_dimension_field modify column c_order integer null 。
但是就涉及到另一个问题了,现在有一批数据插入不进去,因为主键是前缀+字符串,有些字符串末尾有空格,这时插入就会报主键重复。

这个表的主键是什么?