在执行此查询时,我在创建SQLyog外键关系时遇到了问题:
错误:
无法添加或更新子行:外键约束失败(
zestagio.#sql-6dc_4b6151、约束FK_CARRO外键(CARRO)引用km_carro(IDCARRO))
MySQL查询:
ALTER TABLE `zestagio`.`km_colaboradores`
ADD COLUMN `CARRO` int(11) NOT NULL after `TIPO`,
ADD CONSTRAINT `FK_CARRO` FOREIGN KEY (`CARRO`) REFERENCES `zestagio`.`km_carro`(`IDCARRO`)发布于 2017-04-19 13:48:39
错误消息仅意味着km_colaboradores表中的记录不满足FK_CARRO外键设置的约束。
看到字段CARRO被定义为int和not null,并且也没有指定默认值。此语句没有引发任何错误,但外键引发的事实表明,没有启用严格的sql模式。您可能已经在表中有数据了,因此以这种方式添加CARRO字段会导致为所有记录设置0。在严格sql模式下,这将导致错误消息,因此无法启用严格sql模式。
但是,当您试图添加外键时,MySQL在km_carro表中找不到任何记录,其中IDCARRO为0,因此现有记录打破了外键约束。
我建议暂时允许CARRO具有空值,添加外键,根据需要将CARRO值更新为适当的值,然后才不允许空值。
另一种选择是为CARRO定义一个显式默认值,该值存在于IDCARRO字段中。
https://stackoverflow.com/questions/43496893
复制相似问题