Re: insert ... returning in plpgsql

From: Cédric Villemain <cedric(at)2ndquadrant(dot)com>
To: pgsql-general(at)postgresql(dot)org
Cc: "Willy-Bas Loos" <willybas(at)gmail(dot)com>
Subject: Re: insert ... returning in plpgsql
Date: 2012-10-02 13:13:10
Message-ID: 201210021513.15929.cedric@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Le mardi 2 octobre 2012 15:01:08, Willy-Bas Loos a écrit :
> Hi,
> (postgres 9.1)
> I was doing something like this in a plpgsql function, but i got a Syntax
> Error.
>
> t_var:=(insert into table1(field2) values ('x') returning field1);
>
> Is there no support for using RETURNING in insert, update, delete queries
> to fill a variable in plpgsql?

Use the following :

INSERT ... RETURNING expressions INTO [STRICT] target;
UPDATE ... RETURNING expressions INTO [STRICT] target;
DELETE ... RETURNING expressions INTO [STRICT] target;

http://www.postgresql.org/docs/9.1/static/plpgsql-statements.html

Else if you have multiple rows do something like:
FOR my_update IN UPDATE ... RETURNING * LOOP

--
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2012-10-02 13:18:24 Re: What's faster? BEGIN ... EXCEPTION or CREATE TEMP TABLE IF NOT EXISTS?
Previous Message Leif Biberg Kristensen 2012-10-02 13:06:32 Re: insert ... returning in plpgsql