2017-06-21 8 views
0

Ist es möglich, Select-Abfrage ausführen, überprüfen, ob Zeile vorhanden sind und fügen Sie dann einige Werte ein? Ich möchte das in einer Abfrage machen. Ich denke über den SELECT .. CASE .. THEN, zum Beispiel:Postgresql - Einfügen, wenn wählen Sie etwas zurückgeben

SELECT user_id, CASE when user_id > 0 then (INSERT INTO another_table ...) ELSE return 0 END 
FROM users WHERE user_id = 10 

Jetzt bin in der Lage zu I mit 2 Abfragen zu tun, zuerst Sie SELECT und zweiter INSERT-Wert (wenn erste Abfrage Rückkehr etwas).

Danke!

+1

'einsetzen .. Wählen Sie vlaues Wo existiert (wählen Sie qry) '? .. –

Antwort

1

im allgemeinen das Konstrukt:

INSERT INTO another_table 
SELECT value1,value2..etc 
where exists (SELECT user_id FROM users WHERE user_id = 10) 

oder in diesem speziellen Fall:

INSERT INTO another_table 
SELECT value1,value2..etc 
FROM users WHERE user_id = 10 

Wenn keine solche Benutzer, werden keine Zeilen ausgewählt und so eingefügt

+0

Sie sind ein Chef! Vielen Dank. – Ridd