Hola!, tengo una pequeña base de datos en SQL Server 2016 llamada
Escuela, con las tablas
Alumnos,
Carrera y
Datos, lo que quiero es eliminar los alumnos con la carrera en "Ing. Quimica", tengo llaves primarias en las tres tablas, y 2 foraneas (id_carrera) haciendo referencia a la tabla Carrera, y (id_alumno) haciendo referencia a la tabla Alumnos:
Código SQL
[-]
create database Escuela
use Escuela
create table Carrera(
id_carrera int not null primary key,
carrera varchar(50)
);
create table Alumnos(
id_alumno int not null primary key, nombre varchar(50),
apellidos varchar(50),
id_carrera int constraint fk_alumnos_carrera foreign key (id_carrera) references Carrera(id_carrera)
);
create table Datos(
id_datos int not null primary key,
id_alumno int constraint fk_datos_alumnos foreign key (id_alumno) references Alumnos(id_alumno),
correo varchar(50),
edad int
);
insert into Alumnos values(1, 'Jose', 'Rodriguez', 1);
insert into Alumnos values(2, 'Alan', 'Herrera', 2);
insert into Alumnos values(3, 'Estephany', 'Castillo', 3);
insert into Alumnos values(4, 'Pablo', 'Hernandez', 4);
insert into Carrera values(1, 'Ing. Quimica');
insert into Carrera values(2, 'Ing. Industrial');
insert into Carrera values(3, 'Ing. Sistemas');
insert into Carrera values(4, 'Ing. Civil');
insert into Datos values(1, 1, 'correo_jose@gmail.com', 22);
insert into Datos values(2, 2, 'correo_alan@gmail.com', 54);
insert into Datos values(3, 3, 'correo_estephany@gmail.com', 65);
insert into Datos values(4, 4, 'correo_pablo@gmail.com', 76);
Hice esto pero me sale un error:
Código SQL
[-]
delete alumnos from alumnos join carrera on alumnos.id_carrera = carrera.id_carrera
where carrera.carrera = 'Ing. Quimica';
Error que me sale:
Cita:
The DELETE statement conflicted with the REFERENCE constraint "fk_datos_alumnos". The conflict occurred in database "Escuela", table "dbo.Datos", column 'id_alumno'.
The statement has been terminated.
|