steffen: Postgres abfrage problem

Hallo Forumleser,

ich habe 2 Tabellen:

Tbl1
id, name, status (bool)

Tbl2
id, name

Nun möchte ich eine Abfrage machen, die folgendes macht:

Überprüfe, ob in Tbl1, Feld status, eine 1 steht, falls ja, dann führe ein insert aus in Tbl2.

Ausprobiert hab ich:

SELECT  
	CASE WHEN t.status = 1 THEN  
		--'d'  
		INSERT INTO Tbl2 (id, name) VALUES (nextval('__Tbl2'), 'test')  
		  
	END  
FROM Tbl1 as t  
WHERE t.status = 1;

Mit der auskommentieren 'd' Zeile funktioniert es, aber mit dem Insert klappt es nicht. Gibt es eine Möglichkeit wie ich dies realisieren kann?

Version: PostgreSQL 8.4

Danke für eure Hilfe
Steffen

  1. Hallo,

    Tbl1
    id, name, status (bool)

    Tbl2
    id, name

    Überprüfe, ob in Tbl1, Feld status, eine 1 steht, falls ja, dann führe ein insert aus in Tbl2.

    Umgekehrt wird ein Schuh draus:

    [link:http://www.postgresql.org/docs/8.4/static/sql-insert.html@title=INSERT INTO ... SELECT]

    ist die typische SQL-Formulierung für dieses Problem.

    Freundliche Grüße

    Vinzenz