3

我正在尝试使用 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))
4

2 回答 2

5

如果您尝试将表中不存在INSERT的值放入表中,那么您将收到错误消息。ArticulosFabricantes

由于您在该Codigo字段上有一个外键,因此您必须在Fabricantes.

查看非工作演示。此演示显示表Codigo中不存在值,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)
);

您最初有Articulos一个带有identity集合的表,但是由于您将该字段作为外键,我认为您不应该identity在该表上使用该字段。

于 2012-10-04T19:23:34.113 回答
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))
于 2012-10-04T20:10:01.397 回答