首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLyog创建外键错误

SQLyog创建外键错误
EN

Stack Overflow用户
提问于 2017-04-19 13:16:29
回答 1查看 1.1K关注 0票数 0

在执行此查询时,我在创建SQLyog外键关系时遇到了问题:

错误:

无法添加或更新子行:外键约束失败(zestagio.#sql-6dc_4b6151、约束FK_CARRO外键(CARRO)引用km_carro (IDCARRO))

MySQL查询:

代码语言:javascript
复制
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`)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-19 13:48:39

错误消息仅意味着km_colaboradores表中的记录不满足FK_CARRO外键设置的约束。

看到字段CARRO被定义为intnot null,并且也没有指定默认值。此语句没有引发任何错误,但外键引发的事实表明,没有启用严格的sql模式。您可能已经在表中有数据了,因此以这种方式添加CARRO字段会导致为所有记录设置0。在严格sql模式下,这将导致错误消息,因此无法启用严格sql模式。

但是,当您试图添加外键时,MySQL在km_carro表中找不到任何记录,其中IDCARRO为0,因此现有记录打破了外键约束。

我建议暂时允许CARRO具有空值,添加外键,根据需要将CARRO值更新为适当的值,然后才不允许空值。

另一种选择是为CARRO定义一个显式默认值,该值存在于IDCARRO字段中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43496893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档