【发布时间】:2018-05-23 12:27:17
【问题描述】:
我知道这听起来可能很愚蠢,但我对这些表有疑问,我知道它们是错误的,但我不知道如何修复它们。
这是我的代码:
create table Empresarial
(
paquete varchar(10) not null,
Alojamiento varchar(10),
correo varchar(15),
nlineas int,
precio decimal(7,2),
constraint pk_paquete_empresarial primary key(paquete)
);
create table Telefono
(
paquete varchar(10) not null,
nllamadas varchar(15),
precio decimal(7,2),
constraint pk_paquete_telefono primary key(paquete)
);
create table TVTel
(
paquete varchar(10) not null,
nllamadas varchar(15),
canales varchar(10),
TVS varchar(10),
precio decimal(7,2),
constraint pk_paquete_tvtel primary key(paquete)
);
create table TV
(
paquete varchar(10) not null,
canales varchar(10),
TVS varchar(10),
precio decimal(7,2),
constraint pk_paquete_tv primary key(paquete)
);
create table Paquete
(
IDContrato int not null,
TipoCon varchar (11) not null,
paquete varchar(10) not null,
constraint pk_IDContrato primary key(IDContrato),
constraint fk_paquete_empresarial foreign key (paquete) references Empresarial(paquete),
constraint fk_paquete_telefono foreign key (paquete) references Telefono(paquete),
constraint fk_paquete_tvtel foreign key (paquete) references TVTel(paquete),
constraint fk_paquete_tv foreign key (paquete) references TV(paquete)
);
这是我的插入:
insert into Empresarial
values ('EMPPAQ001', 'SI', 'SI', 50, 1499.00);
insert into Telefono
values ('TELPAQ001', '1000', 249.00);
insert into TV
values ('TVSPAQ001', '52', 1, 289.00);
insert into TVTel
values ('TVTPAQ001', '1000', '52', 1, 329.00);
insert into Paquete
values (1001, 'Mensual', 'TVTPAQ001'),
(1002, 'Mensual', 'TVSPAQ001'),
(1003, 'Mensual', 'TELPAQ001'),
(1004, 'Mensual', 'EMPPAQ001');
问题是,我想将 4 个不同表中的 4 个主键引用到另一个表中的一列作为外键。我收到此错误:
INSERT 语句与 FOREIGN KEY 约束“fk_paquete_empresarial”冲突。冲突发生在数据库“telecommsouthtest”、表“dbo.Empresarial”、列“paquete”中。
当我在表Paquete 中进行一些插入时。我该如何解决?
【问题讨论】:
-
请发布您在创建Minimal, Complete, and Verifiable Example 时使用的INSERT 语句。
-
四个表中的每一个都需要在其
paquete列中具有该值,以便您能够将其插入到Paquete表的paquete列中。.. -
@MihaiChelaru 这是我的插入:插入 Empresarial 值 ('EMPPAQ001','SI','SI',50,1499.00);插入 Telefono 值 ('TELPAQ001','1000',249.00);插入电视值('TVSPAQ001','52',1,289.00);插入 TVTel 值('TVTPAQ001','1000','52',1,329.00);从 Empresarial 中选择 *;插入 Paquete 值 (1001,'Mensual','TVTPAQ001'),(1002,'Mensual','TVSPAQ001'),(1003,'Mensual','TELPAQ001'),(1004,'Mensual','EMPPAQ001' );
-
@ps2goat 我知道,我的四个表中的每一个都已经有了这些值,当我在 Paquete 表中插入时问题就来了。我不知道该怎么办。
标签: sql sql-server foreign-keys constraints