Error number: MY-012467; Symbol: ER_IB_MSG_642; SQLSTATE: HY000
Message: %s
错误说明:
ER_IB_MSG_642是属于MySQL中的一个运行时错误。这个错误的全称是(ER_IB_MSG_642_TABLE_MUST_HAVE_PK),提示的是报错的表中需要有主键,但未检测到,导致无法操作某些操作。
造成ER_IB_MSG_642错误的原因一般可以归因于三个方面:
1、执行insert语句时,某个表中并不存在相关字段的主键
2、执行update操作时,更新字段没有根据主键
3、在尝试删除记录时,并未指定主键
解决方法:
解决ER_IB_MSG_642错误非常简单,只需要修改SQL语句以对应指定的表设置主键即可,以保证数据的完整性。
可以通过以下的SQL语句指定表的主键:
1、增加主键
ALTER TABLE
ADD PK_ int NOT NULL PRIMARY KEY;
2、删除主键
ALTER TABLE
DROP PRIMARY KEY;
此外,针对报错原因是某个表中没有主键的情况,也可以通过以下的SQL语句来添加合法的主键:
1、自增主键
ALTER TABLE
ADD PK_ int NOT NULL AUTO_INCREMENT PRIMARY KEY;
2、唯一键
ALTER TABLE
ADD PK_ int NOT NULL UNIQUE;