我的MysQL数据库用于主键CHAR(18)
,但需要将此数据类型更改为CHAR(36)
。但是,如果使用鼠标并使用Workbench,我会制作一个“复制字段”。在新CHAR(36)
列的单元格中,我得到了带有18个字符的旧字符串。我检查了这个专栏的声明,然后说CHAR(36)
PK。有什么不对?
答案 0 :(得分:1)
更改列类型后是否更新了密钥?如果没有,它只能在创建行时处理16个字符,因此其余数据将被截断/丢失。
通常,如果出现这种情况,你会得到一个DataTruncation-Eception,但是却是.c。如果你没有处理这种类型的异常,那么无论如何都会插入数据 - 只是被截断。
除非您启用了完整的查询日志,否则无法还原此信息,这将允许您从日志中重新创建主键。
至少它是PK-Column(唯一),所以如果插入工作,键的截断部分也是唯一的,这允许你手动修复它#34;。