我有一个错误,但我不知道问题是什么.
我想执行一个函数,并从列默认的一个列中返回一个值,一个序列 – 相当于currval(sequence).
我用:
Postgresql 9.0
pgAdmin III
CREATE OR REPLACE FUNCTION name_function(in param_1 character varying,out param_2 bigint) AS $$ BEGIN INSERT INTO table (collumn_seq,param_1) VALUES (DEFAULT,param_1) returning collumn_seq; --where:collumn_seq reference a collumn serial.. END; $$ LANGUAGE plpgsql VOLATILE;
06001
它会像这样工作:
CREATE OR REPLACE FUNCTION name_function(param_1 character varying,OUT param_2 bigint) AS $func$ BEGIN INSERT INTO table (collumn_seq,param_1) VALUES (DEFAULT,param_1) RETURNING collumn_seq INTO param2; END $func$LANGUAGE plpgsql;
通常,您将添加RETURN语句,但使用OUT参数时,这是可选的.
有关更多详细信息,请参阅手册:
> Returning from a function
> Executing a Query with a Single-row Result