phpbar.de logo

Mailinglisten-Archive

=?ISO-8859-1?Q?Re:_DELETE_=FCber_mehrere_tabellen?=

Re: DELETE über mehrere tabellen

Patrick Bierans mysql_(at)_lists.phpcenter.de
Thu, 6 Sep 2001 17:20:30 +0100


> Ist es möglich innerhalb einer Anweisung, ein DELETE über mehrere
> tabellen zu machen ?
> 
> Also "DELETE FROM t1,t2,t3 WHERE ..." funktioniert schon mal nicht,
> deswegen meine Frage ob es dafür vielleicht eine Funktion gibt, oder ob
> es von der Syntax her einfach nur anders zu formulieren ist als die
> obige Anweisung.
> 
> Zum Verständnis:
> Ich möchte nicht ganze Tabellen leeren, sondern nur bestimmte Einträge
> die den selben schlüssel haben entfernen.

Steht dir eine Programmiersprache (wie PHP) zur Verfügung? Denn dann
kannst du die ganzen Schlüssel in ein Array packen, und daraus eine
Menge bilden und dann für jede Tabelle ein Statement bauen:

<?php
$my_set=array(); // leeren

while ($key=sonst_was())
{
  $my_set[]=$key;
}
$my_set=implode(", ",$my_keys);

$to_do=array 
(
  "tbl_kunden"=>"kunden_key",
  "tbl_kunde_firma"=>"kunden_id"
);
while (list($mytable,$mykey)=each($to_do))
{
  $statement="delete from $mytable where $my_field in ($my_set)";
} 
?>

Ist sehr spaßig, oder? ;)


P. Bierans

-- 
Patrick Bierans - LYNET Kommunikation AG - http://www.lynet.de
Das Internet-Systemhaus fuer Multimedia- und Netzwerkloesungen
Zentrale Luebeck      Fon +49-451-6131-0, Fax +49-451-6131-333
Niederlassung Hamburg Fon +49-40-65738-0, Fax +49-40-65738-333

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive