These are my tables:
create table Enquete
(enqueteId int auto_increment,
bedrijvenId int,
primary key (enqueteId),
foreign key(bedrijvenId) references Bedrijven(bedrijvenId)
);
create table Gesloten_vragen
(gesloten_vragenId int auto_increment,
enqueteId int,
gesloten_vraag varchar(255),
primary key(gesloten_vragenId),
foreign key(enqueteId) references Enquete(enqueteId)
);
create table Antwoorden_gesl_vragen
(klantenId int,
gesloten_vragenId int,
antwoordId int auto_increment,
antwoord int(2),
primary key(antwoordId),
foreign key(gesloten_vragenId) references Gesloten_vragen(gesloten_vragenId),
foreign key(klantenId) references Klanten(klantenId)
);
I want to delete Enquete "where enqueteId is = ?". So I used:
DELETE Enquete,Gesloten_vragen,Antwoorden_gesl_vragen
FROM Enquete JOIN Gesloten_vragen JOIN Antwoorden_gesl_vragen
WHERE Enquete.enqueteId= Gesloten_vragen.gesloten_vragenId
AND Gesloten_vragen.gesloten_vragenId = Antwoorden_gesl_vragen.gesloten_vragenId
AND Enquete.enqueteId = 3;
This doesn't give an error, but it doesn't effect my table. database image
I think your SQL needs to use the JOIN with ON clause as shown below
DELETE Enquete
,Gesloten_vragen
,Antwoorden_gesl_vragen
FROM Enquete
JOIN Gesloten_vragen
ON Enquete.enqueteId = Gesloten_vragen.gesloten_vragenId
JOIN Antwoorden_gesl_vragen
ON Gesloten_vragen.gesloten_vragenId = Antwoorden_gesl_vragen.gesloten_vragenId
WHERE Enquete.enqueteId = 3;
Alternatively you can set up cascading deletes between your parent and child tables.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.