请建议我如何解决错误,如何解决错误
Msg 547,级别16,状态0,第1行 ALTER语句与外键约束"MyForeignKeyName“冲突。冲突发生在数据库"MyDatabase“、表"dbo.MyTable”、列“IMyColumn”中。
发布于 2014-04-03 11:05:01
如果您试图制作外键,而您的子表已经有一些与父表不匹配的数据,则会收到此错误消息。
例如,
CREATE TABLE MyParent(Job_id int PRIMARY KEY,Job_Name Varchar(50));
INSERT INTO MyParent Values(1,'CEO');
INSERT INTO MyParent Values(2,'Business Manager');
INSERT INTO MyParent Values(3,'DBA');
CREATE TABLE MyChild(Emp_id int,Emp_Name Varchar(50),Job_Id int)
INSERT INTO MyChild Values(1,'Lavanya',1);
INSERT INTO MyChild Values(1,'JP Chauhan',3);
INSERT INTO MyChild Values(1,'Rakesh',5);
请参阅在MyChild表中有值的Job_Id表的最后一条记录为5,这不是MyParent表中的记录。
如果您试图建立外键关系,如:
ALTER TABLE MyChild
ADD CONSTRAINT fk_My_foreignKey FOREIGN KEY(Job_Id)REFERENCES MyParent(Job_Id);
您将得到的错误消息:
Msg 547,级别16,状态0,第1行ALTER语句与外键约束"fk_My_foreignKey“冲突。冲突发生在数据库"mydatabase“、表"dbo.MyParent”、列“作业_id”中。
https://dba.stackexchange.com/questions/62325
复制相似问题