我正在尝试使用sql server 2012在表中插入值,但是我有这个错误:
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Fabricante".
The conflict occurred in database
"practica", table "dbo.Fabricantes", column 'Codigo'.
我只有两张桌子。
这是我用来创建表的代码
create table Fabricantes(
Codigo int identity primary key,
Nombre nvarchar (100) not null)
create table Articulos(
Codigo int identity primary key,
Nombre nvarchar (100) not null,
Precio int,
Fabricante int,
constraint FK_Fabricante foreign key
(Codigo) references Fabricantes (Codigo))
答案 0 :(得分:5)
如果您尝试INSERT
Articulos
表中Fabricantes
表中不存在的值Codigo
,那么您将收到错误。
由于Fabricantes
字段上有外键,因此您必须在Codigo
中使用相同的值。
查看non-working demo。此演示显示Fabricantes
表中不存在create table Fabricantes
(
Codigo int identity primary key,
Nombre nvarchar (100) not null
);
create table Articulos
(
Codigo int primary key,
Nombre nvarchar (100) not null,
Precio int,
Fabricante int,
constraint FK_Fabricante foreign key
(Codigo) references Fabricantes (Codigo)
);
的值,因此它会抛出错误消息。这是一个working demo,表示该值首先出现在表格中。
我认为无论如何你需要重做表格。
Articulos
您最初拥有identity
表并设置了identity
,但由于您将该字段作为外键,我认为您不应该使用{{1}}表
答案 1 :(得分:0)
我认为你的错误是错误的外键。根据表格的外观,您应该将Articulo.Fabricante引用到Fabricante.Codigo,如下所示:
create table Fabricantes(
Codigo int identity primary key,
Nombre nvarchar (100) not null)
create table Articulos(
Codigo int identity primary key,
Nombre nvarchar (100) not null,
Precio int,
Fabricante int,
constraint FK_Fabricante foreign key
(Fabricante) references Fabricantes (Codigo))