2012-04-10 11 views
0

Ich möchte drei Zeilen aus drei separaten Tabellen löschen. Hier ist meine Abfrage, aber es scheint nicht zu funktionieren.MySQL löschen aus mehreren Tabellen mit einer Variablen

CREATE PROCEDURE `DB`.`deleteArticle` (IN x INT) 
BEGIN 

DELETE FROM articles 
where article_id=x; 

DELETE FROM AUTHORS 
where submission_id = select submission_id from article_files where article_id=X; 

DELETE FROM article_files 
where article_id=X; 

END 
+4

"es scheint nicht zu arbeiten", was nicht funktioniert? Fehler? Was haben Sie erwartet, dass es gelöscht wird? Achten Sie darauf, einige Daten von Ihrem Tisch zu zeigen? – ManseUK

+0

Sie haben einen Tippfehler im letzten Block (DLETE sollte DELETE sein) \ – Manuel

+0

@ dragon112 Entschuldigung, es war ein Typ während der Eingabe der Abfrage. – SupaOden

Antwort

2

versuchen dieses

CREATE PROCEDURE `DB`.`deleteArticle` (IN x INT) 
BEGIN 

DELETE FROM articles 
WHERE article_id=x; 

DELETE FROM AUTHORS 
WHERE submission_id IN (SELECT submission_id FROM article_files WHERE article_id=X); 

DELETE FROM article_files 
WHERE article_id=X; 

END 
Verwandte Themen