# mySQL: kaskadierendes Löschen



## Guest (9. Jun 2004)

Hallo zusammen. Ich habe schon lange kein reines SQL mehr geschrieben, daher meine etwas laienhafte Frage:

Ich habe TabelleA mit Bestellungen und TabelleB mit den Positionen. Wie lautet nun der SQL-Befehl, dass es mir eine Bestimmte Bestellung und die dazugehörigen Positionen löscht?

Die Tabellen sind über die Felder BestellNr "verknüpft".

Danke für eure Hilfe!


----------



## nollario (9. Jun 2004)

vorsicht!

http://www.techonthenet.com/oracle/foreign_keys/foreign_delete.htm

das funzt zwar mit dem kaskadierenden delete, aber nicht für alle datenbank typen (mir fällt spontan nur oracle und postgres ein).


----------



## Guest (9. Jun 2004)

Mit Oracle ist das kein Problem, da ich dort ja ForeignKeys habe, was mir bei mySQL fehlt


----------



## nollario (9. Jun 2004)

du hast auch bei mysql foreign keys:

http://dev.mysql.com/doc/mysql/en/InnoDB_foreign_key_constraints.html


----------



## DP (9. Jun 2004)

oder


```
DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
```

"In diesem Fall werden übereinstimmende Zeilen nur aus den Tabellen t1 und t2 gelöscht."

cu


----------



## nollario (9. Jun 2004)

also bei sybase geht das nicht mit dem delete auf 2 tabellen - mysql auch nicht... hast du das mal irgendwo ausprobiert?


----------



## DP (9. Jun 2004)

bei mysql habe ich das gemacht. hier: http://dev.mysql.com/doc/mysql/de/DELETE.html

cu


----------



## nollario (9. Jun 2004)

tatsächlich... krass... hatte ne 3er mysql und auf der gings nicht, erst ab 4.0. super.... natürlich nicht ansi standard ;-)


----------

