SQL - The DELETE statement conflicted with the REFERENCE constraint

 
Vista:

The DELETE statement conflicted with the REFERENCE constraint

Publicado por Matias (1 intervención) el 20/04/2021 22:45:50
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
create database Escuela
use Escuela
 
create table Barrios
(
id_barrio int identity (1,1),
nombre_barrio varchar(50)
constraint pk_barrio primary key (id_barrio)
)
create table Alumnos
(
legajo int,
nombre varchar(50),
apellido varchar(50),
calle varchar(50),
nro int,
id_barrio int,
nro_dni int,
nro_tel bigint,
email varchar(50),
fecha_nac datetime
constraint pk_alumno primary key (legajo)
constraint fk_barrio foreign key(id_barrio) references Barrios (id_barrio)
)
 
insert into Barrios (nombre_barrio) values ('alta cordoba')
insert into Barrios (nombre_barrio) values ('nueva cordoba')
insert into Barrios (nombre_barrio) values ('cofico')
insert into Barrios (nombre_barrio) values ('centro')
insert into Barrios (nombre_barrio) values ('cerro')
 
select * from Barrios
 
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (100,'juan','olmedo','fake st',123,1,23233,45678,'a@b.c','1987/5/3')
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (101,'luan','simpson','fake st',122,4,23231,45675,'b@b.c','1987/2/1')
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (102,'amir','hakim','fake st',121,2,221233,25678,'c@b.c','1887/1/1')
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (103,'karim','mohamed','fake st',124,3,13233,452678,'d@b.c','1997/10/11')
 
select * from Alumnos
 
select * from Barrios
 
insert into Barrios (nombre_barrio) values ('general bustos')
insert into Barrios (nombre_barrio) values ('ipona')
insert into Barrios (nombre_barrio) values ('villa belgrano')
 
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (104,'mati','cape','fake st',125,7,23533,412678,'f@b.c','1988/9/3')
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (105,'carlos','jimenez','fake st',133,5,23211,45228,'g@b.c','1911/7/9')
insert into Alumnos (legajo,nombre,apellido,calle,nro,id_barrio,nro_dni,nro_tel,email,fecha_nac)
values (105,'jesus','nazaret','fake st',1234,8,0000,0000,'0@b.c','1978/12/25')
 
select * from Alumnos
 
select * from Barrios
 
update Alumnos set nro_tel = '1501' where legajo=104
update Alumnos set email= 'sarandanga@1.2' where legajo=104
update Alumnos set calle='caminoti' where legajo=104
update Alumnos set nro = '7689' where legajo=104
update Alumnos set nombre='emir' where legajo=102
 
delete Alumnos where legajo=100
delete Alumnos where legajo=101
 
delete Barrios where id_barrio=2
delete Barrios where id_barrio=4

ERROR:

Msg 547, Level 16, State 0, Line 71
The DELETE statement conflicted with the REFERENCE constraint "fk_barrio". The conflict occurred in database "Escuela", table "dbo.Alumnos", column 'id_barrio'.
The statement has been terminated.


CONSIGNA :
Elimine al menos dos registros de cada tabla.
Ejemplo:
delete alumnos where legajo = 106743
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

The DELETE statement conflicted with the REFERENCE constraint

Publicado por Isaias (1921 intervenciones) el 21/04/2021 23:30:11
Matias

No se que tanto tengas conocimiento en bases de datos, pero el mensaje es bien claro, estas intentando VIOLAR la declarativa referencial, te pongo un ejemplo.

CLIENTE - FACTURA

Si yo intento eliminar un registro de CLIENTE, no me lo va a permitir si existe un registro que hace referencia de FACTURA al CLIENTE, en pocas palabras, NO PUEDO DEJAR REGISTROS HUERFAMOS.

Primero debo borrar los registros en FACTURA que pertenecen (o hacen referencia) a CLIENTE.

¿Me explique?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar