尝试使用 MySQL 创建表时,遇到错误 1022:“无法写入;重复键在表中。”特殊之处在于该表仅定义了一个键,但错误仍然存在。
经调查,似乎是表定义中的特定片段触发了错误:
CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
虽然其他表中存在类似的外键定义,没有问题,但问题在于外键的名称:error_id.
根本原因:
出现此问题的原因是外键名称不能与整个数据库模型中的另一个外键名称相同。这意味着如果两个表引用同一个表,则每个表中的外键必须具有唯一的名称。
解决方案:
要解决该错误,只需给出有问题的外键有不同的名称。例如,您可以将其命名为 fk_error_id。这会将其与模型中的任何其他外键区分开来,并允许 MySQL 成功创建表。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3