Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
SQL DELETE Postgres 8.3

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
rasu



Anmeldungsdatum: 10.11.2006
Beiträge: 20

BeitragVerfasst am: 10. Jul 2008 14:27   Titel: SQL DELETE Postgres 8.3

Ich habe folgende SQL-Tabellen

t1 mit den Feldern t1_id, t1_inhalt

t2 mit den Feldern t2_id, t2_t1_id, t2_wert

abelle t2 enthält einen Fremdschlüssel auf Tabelle t1 (t2_t1_id)

Nun möchte ich alle Datensätze aus Tabelle t2 löschen mit der Bedingung daß der inhalt von t1_inhallt = 5 ist.

Wenn man in Postgres 8.3 den Schalter add_mising_from=on setzt funktioniert folgender SQL-Befehl:

DELETE FROM t2
WHERE (t2.t2_t1_id=t1.t1_id)
AND t1.t1_inhalt=5
;

Setzt man den Schalter add_missing_from=off wird die Fehlermeldung

Fehlender Eintrag in FROM Klausel für Tabelle t1

ausgegeben.

Kann mir jemand die Syntax mit richtiger FROM Klausel nennen?
Der oben angeführte Schalter ist nur noch aus Kompatibilitätsgründen in der Config und ich möchte den rausnehmen.

Hinweis:
Die in MYSQL ab Version 4 mögliche Syntax:
DELETE T2 FROM t1, t2
WHERE (t2.t2_t1_id=t1.t1_id)
AND t1.t1_inhalt=5
;
geht nicht

und eine Lösung etwa in dieser Form

DELETE FROM t2
WHERE t2.t2_id IN
(
SELECT t2.t2_id FROM t2,t1
WHERE (t2.t2_t1_id=t1.t1_id)
AND t1.t1_inhalt=5
)
;
macht abgesehen von diesem Trivialbeispiel keinen Sinn.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy