löscht Zeilen aus mehreren Tabellen

7

Ich versuche, SQL zu verwenden, um mehrere Zeilen aus mehreren Tabellen zu löschen zusammengefügt.

Tabelle A ist mit Tabelle B verbunden Tabelle B ist mit Tabelle C verbunden

Ich möchte alle Zeilen in Tabelle B & amp; C, die einer Zeile in Tabelle A entsprechen

%Vor%     
AdRock 09.04.2009, 14:50
quelle

4 Antworten

18

Nun, wenn Sie InnoDB-Tabellen verwendet hätten, könnten Sie eine Kaskadierendes Löschen mit Fremdschlüsseln , das würde alles automatisch machen. Aber wenn Sie einen Grund haben, MyISAM zu verwenden, verwenden Sie einfach ein DELETE mit mehreren Tabellen :

%Vor%     
Chad Birch 09.04.2009, 14:58
quelle
6

Dies kann von Ihrem db-System gemacht werden, wenn Sie Fremdschlüssel mit "on delete cascade" verwenden.

Sehen Sie hier: Ссылка

    
Bernd Ott 09.04.2009 14:54
quelle
2

Sie können entweder nur nach Anwesenheit suchen

%Vor%

aber das würde nur Sinn machen, wenn dieses Verhalten nicht immer zutrifft. Wenn das Verhalten immer zutreffen sollte, implementieren Sie Fremdschlüssel mit delete bei cascade

erklärt auf einer Zillion Websites, in Ihren Hilfedateien und hier

    
Peter 09.04.2009 15:00
quelle
1

Das Löschen von Zeilen aus mehreren Tabellen kann auf zwei Arten erfolgen:

  • Löschen Sie Zeilen aus einer Tabelle und bestimmen Sie, welche Zeilen gelöscht werden sollen, indem Sie auf eine andere verweisen Tabelle
  • Löschen Sie Zeilen aus mehreren Tabellen mit einer einzigen Anweisung

DELETE-Anweisungen mit mehreren Tabellen können in zwei Formaten geschrieben werden. Das folgende Beispiel zeigt eine Syntax für eine Abfrage, die Zeilen aus einer Tabelle t1 löscht, wobei die ID-Werte mit denen in einer Tabelle t2 übereinstimmen:

%Vor%

Die zweite Syntax ist etwas anders:

%Vor%

Um die übereinstimmenden Datensätze aus beiden Tabellen zu löschen, lauten die Anweisungen:

%Vor%

Die ORDER BY- und LIMIT-Klauseln, die normalerweise von UPDATE und DELETE unterstützt werden, sind nicht erlaubt, wenn diese Anweisungen für Operationen mit mehreren Tabellen verwendet werden.

    
Deepak 24.02.2014 10:12
quelle

Tags und Links