【问题标题】:conflict with foreign key constraint when inserting data插入数据时与外键约束冲突
【发布时间】:2018-12-04 07:49:32
【问题描述】:

这些是我的表,它们是创建的,但是当我在 AMI 表中插入数据时,它给了我外键冲突错误。我知道在插入子表之前,父级应该具有该值。在这里,我的 AMI 表同时依赖于 household_income 和 location 并且两者都有数据。那么为什么我会收到错误消息:

Insert into AMI values('CONTROL','ZIP','PER','L30','L50','L80');

消息 547,级别 16,状态 0,第 1 行 INSERT 语句与 >FOREIGN KEY 约束“FK__AMI__7908F585”冲突。冲突发生在数据库 >“mydatabase_old”、表“dbo.household_income”中。 声明已终止。

create table admin
(control   varchar(15), 
status     varchar(3),
weight     float(24),
metro3     varchar(3),
PRIMARY KEY (control)
);



create table AMI 
(control varchar(15),
zip    varchar(8),
per     VARCHAR(15),
L30         int,
L50         int,
L80         int,
PRIMARY KEY(zip, per),
foreign key (zip, control) references location on delete cascade,
foreign key (per, control) references household_income ON UPDATE NO ACTION
);



create table location
(region varchar(5),
control   varchar(15),
zip    varchar(8),
PRIMARY KEY(zip, control),
foreign key (control) references admin on delete cascade
);


create table household_income
(control   varchar(15),
age1    int,
per    varchar(15),
ownrent     varchar(3),
totalsal    float(24),
zinc2       float(24),
type        varchar(15), 
PRIMARY KEY(control, per),
foreign key (control) references admin on delete cascade,
foreign key (type, control) references structure ON UPDATE NO ACTION,
);

【问题讨论】:

  • 您正在尝试在父表中插入数据之前将数据插入到子表中。当我们在架构上应用参照完整性时。您应该先将数据输入到父表中,然后再输入子表跨度>
  • 据我了解,AMI 是我的子表, location 和 home_income 都是父表。即,family_income 具有控制权和 per...并且 location 具有控制权和 zip...然后我将该数据插入 AMI

标签: sql-server


【解决方案1】:

首先你需要插入位置表

然后进入family_income

然后插入

Insert into AMI values('CONTROL','ZIP','PER','L30','L50','L80');

【讨论】:

  • 我这样做了:select * from family_income where control = 100003130103 --> 100003130103 82 1 1 0 1 1 ; select * from [location] where control = 100003130103 --> 1 100003130103 73738 ;;插入 AMI 值('100003130103','73738','1','15738','26213','40322');但我不知道这里缺少什么?你能帮忙吗
  • 您正在尝试将字符串值插入 int 列,试试这个:插入 AMI 值('100003130103','73738','1',15738,26213,40322);
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 2018-07-26
  • 1970-01-01
相关资源
最近更新 更多