web-dev-qa-db-fra.com

Affectation de valeur variable à l'aide de la clause RETURNING

J'essaie de faire ça, mais c'est une erreur de syntaxe, qu'est-ce que je fais mal?

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

ma table:

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

Vous devez utiliser la clause INTO dans RETURNING pour définir la valeur renvoyée dans votre variable:

DECLARE myid OAMENI.id%TYPE;

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

Vous devez également spécifier le type de données de votre variable; Je suis content de voir postgresql supporte% TYPE et% ROWTYPE .

75
OMG Ponies