Search Postgresql Archives

Re: INSERT with RETURNING clause inside SQL function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 4, 2008 at 9:57 AM, Lennin Caro <lennin.caro@xxxxxxxxx> wrote:
>> Hi all,
>>
>> I'm re-writing some functions and migrating bussines
>> logic from a
>> client application to PostgreSQL.
>>
>> I expected something like this to work, but it doesn't:
>>
>> -- simple table
>> CREATE TABLE sometable (
>>    id SERIAL PRIMARY KEY,
>>    text1 text,
>>    text2 text
>> );
>>
>> CREATE OR REPLACE FUNCTION add_something(text, text)
>> RETURNS INTEGER AS $$
>>    INSERT INTO sometable (id, foo, bar ) VALUES (DEFAULT,
>> $1, $2 )
>> RETURNING id ;
>> $$ LANGUAGE SQL ;
>>
>>
>> Please note the use of RETURNING clause. If I put a SELECT
>> 1; after
>> the INSERT, the function works (but doesn't returns any
>> useful value
>> :)
>> I need the function to return the last insert id. And yes,
>> I'm aware
>> that the same can be achieved by selecting the greatest id
>> in the
>> SERIAL secuence, but is not as readable as RETURNING
>> syntax. And no,
>> for me it's not important that RETURNING is not
>> standard SQL.
>>
>> Does anyone knows why RETURNING doesn't works inside
>> SQL functions?
>>
>> Any advise will be very appreciated. TIA.
>>
>> diego
>>
> Hi.. what version of postgres you have?
>
>

I'm using 8.3.3.

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux