Variable value assignment using RETURNING clause Variable value assignment using RETURNING clause postgresql postgresql

Variable value assignment using RETURNING clause


You need to use the INTO clause in the RETURNING to set the value being returned into your variable:

DECLARE myid OAMENI.id%TYPE;INSERT INTO oameni VALUES   (default,'lol') RETURNING id INTO myid;

You also need to specify the data type of your variable; I'm glad to see postgresql supports %TYPE and %ROWTYPE.


Adding to the main answer, it's worth noting that if you are doing this outside a stored procedure, you must wrap the code in a "DO" block, like so:

DO $$ DECLARE    myid mytable.id%TYPE;BEGIN    INSERT INTO mytable (...)       VALUES (...)      RETURNING id INTO myid;END $$