AW: [pgsql-de-allgemein] Mehrere Einträge anhand Primary-Key-Lis te löschen
"Mag. Dr. Stefan Krejci" <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <[email protected]> |
Hallo und Danke für eure schnelle Hilfe!
> Schau die mal subselects an, damit sollte das kein Problem sein ;)
Hab ich schon, ich hab auch schon mit CTEs gearbeitet etc. Ich bin trotzdem auf keinen grünen Zweig gekommen – ich fürchte, ich stehe scheinbar total auf der Leitung, weil…
> Wenn Du die WHERE-Bedingung statt in eine SELECT in eine DELETE packst, werden die Daten
> gleich aus der Datenbank gelöscht. Aber vorsicht - es gibt kein zurück. Was weg ist, ist weg.
…wenn ich diesen Tipp von Susanne übersetze, müsste der Befehl lauten:
DELETE
FROM "Leser" AS l, "LxAbo" AS lxabo
WHERE ((EXTRACT(YEAR FROM AGE(l."LGebDat")) >= 6) AND
(l."LID" = lxabo."LxAboLID") AND
(lxabo."LxAboLAboID" = 'testAboID') AND
(lxabo."LxAboBibID" = '40922002321'));
Aber zwei oder mehrere Tabellen lässt PostgreSQL beim DELETE-Befehl nicht zu. Und wenn ich die Leser-Tabelle weg mache (weil ja aus der LxAbo rausgelöscht werden soll), frisst mir der Parser die WHERE-Clause nicht mehr. Susanne, wie müsste der Befehl denn lauten? Bitte-danke!
Danke, Andreas, übrigens für die vereinfachte Alters-Bestimmung ;-) CTEs weiß ich, was sind wCTE? Bei mir läuft aktuell Version 9.0.4 – das Update auf die aktuelle Version möchte ich bald machen, und wäre vermutlich ein weiteres Thema hier, wie ich das korrekt angehe…
> I wüŗde keine Zeile eigentlich loschen,aber nur als ´ inactive´ markieren in ´ relationship table´ .
Danke für den Tipp. Ich lösche die Zeilen aus dieser Tabelle hier trotzdem raus, ein Trigger auf DELETE schreibt mir einen passenden Log-Eintrag dazu.
Liebe Grüße, Stefan