修改表结构,添加外键时出错:“约束冲突”

由于表结构更改,使用新建表,现有部分表需要更改外键,将引用更改到新建表的相应字段。在更改过程中,部分表出现如下错误提示:

ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突。该冲突发生于数据库 “***”,表 “***”, column “***”。

反复查看后,包括字段类型、长度等完全一致。不得其解,在网上找了下,发现有如下文章[1]提示:

根源: XXX表有数据

解决:删掉XXX表的数据再执行sql语句

恍然大悟,查看引用表数据与被引用表数据做比较,才发现,原来是相应字段数据不一致的问题。即引用表中的相应字段数据,在被引用表中并不存在,无法建立实际上的外键关系,这是引用完整性的要求。早在读书时就学到的东西,今天居然忘记了。看来,知识只有在用了之后才属于自己。


参考文献:

[1] ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突 ,大尾巴狼专栏

Technorati 标签: 数据库 表结构
posted @ 2012-07-16 22:09  Ritchie(乞戈)  阅读(781)  评论(0编辑  收藏  举报