2010-09-10 10 views
29

Ich versuche, dies zu tun, aber es ist ein Syntaxfehler, was mache ich falsch?Variable Wert Zuordnung mit RETURNING-Klausel

declare myid := insert into oameni values(default,'lol') returning id; 

meinem Tisch:

create table oameni 
(
id serial primary key, 
name varhcar(10) 
); 

Antwort

49

Sie müssen den Wert in die Rücksendung der INTO-Klausel verwenden, setzen in die Variable zurückgegeben wird:

DECLARE myid OAMENI.id%TYPE; 

INSERT INTO oameni 
VALUES 
    (default,'lol') 
RETURNING id INTO myid; 

Sie müssen auch die angeben, Datentyp Ihrer Variablen; Ich bin froh, postgresql supports %TYPE and %ROWTYPE zu sehen.

+1

Ich bekomme immer noch einen Syntaxfehler, ist dies nur innerhalb einer Plpgsql-Funktion verfügbar, oder ist in normalen Posgresql auch verfügbar? – Omu

+0

@Omu: Wie willst du das ausführen? Und welche Version von PostgreSQL? –

+0

Ich habe die neueste Version 9 RC1, und ich habe gerade Ihren Code in den SQL-Editor eingefügt – Omu