我正在尝试返回在任何范围内的指定表上设置的最后一个标识值 使用函数的过程。但是出现错误:
ERROR: function ident_current(unknown) does not exist
LINE 1: SELECT ident_current('testing')
示例:
/* Function */
create or replace function test(s int,n text,g text,a text, out sn int) as
$$
Begin
insert into testing(ssn,name,gender,address) values(s,n,g,a);
sn := ident_current('testing');
select sn;
end;
$$
language plpgsql;
函数调用:
Select test(1,'a','b','c');
最佳答案
ident_current() 在 PostgreSQL 中不存在,查看错误消息,但您可以使用 currval() .一个更简单的解决方案是返回:
CREATE OR REPLACE FUNCTION test(IN s INT, IN n TEXT, IN g TEXT, IN a TEXT, OUT sn INT) AS
$$
BEGIN
INSERT INTO testing(ssn,name,gender,address) VALUES(s,n,g,a)
RETURNING id INTO sn; -- I used the name id, don't know your col
END;
$$
LANGUAGE plpgsql;
关于postgresql - 错误 : function ident_current(unknown) does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074911/