Error number: MY-012094; Symbol: ER_IB_MSG_269; SQLSTATE: HY000
Message: %s
错误说明:
MY-012094 是MySQL的一个错误代码,其代码ER_IB_MSG_269,SQLSTATE为HY000。这是一个警告性错误,表面上表明表字段非唯一,而内部是InnoDB的内部错误。
MY-012094会出现在数据库操作发生违反唯一性约束时,就是说在操作过程中,在表中出现了重复值。比如插入时,语句是 INSERT INTO TABLEXXXX WHERE F1=value,而在这表中F1字段已经有值value,那么就会报出这个警告错误。
解决方法:
这个错误是MySQL内部警告性错误,所以不会导致操作失败。但是它通常是因为其他错误引起的,如上面介绍的,所以要解决这个错误,你需要确定最初的错误,也就是表非唯一的违反约束的原因。一般来说,可以采取防止重复插入数据的策略,比如在你的插入语句前加上一个 WHERE NOT EXISTS(SELECT * FROM TABLEXXX WHERE F1=value)语句,先查询是否存在F1值已经存在,如果存在就不再执行插入语句,这样可以避免上面提到的违反唯一性约束的情况发生。