在MYSQL中将列从CHAR(18)更改为CHAR(36)

时间:2017-05-23 20:50:43

标签: mysql char primary-key

我的MysQL数据库用于主键CHAR(18),但需要将此数据类型更改为CHAR(36)。但是,如果使用鼠标并使用Workbench,我会制作一个“复制字段”。在新CHAR(36)列的单元格中,我得到了带有18个字符的旧字符串。我检查了这个专栏的声明,然后说CHAR(36) PK。有什么不对?

1 个答案:

答案 0 :(得分:1)

更改列类型后是否更新了密钥?如果没有,它只能在创建行时处理16个字符,因此其余数据将被截断/丢失。

通常,如果出现这种情况,你会得到一个DataTruncation-Eception,但是却是.c。如果你没有处理这种类型的异常,那么无论如何都会插入数据 - 只是被截断。

除非您启用了完整的查询日志,否则无法还原此信息,这将允许您从日志中重新创建主键。

至少它是PK-Column(唯一),所以如果插入工作,键的截断部分也是唯一的,这允许你手动修复它#34;。