postgresql - 错误 : function ident_current(unknown) does not exist

标签 postgresql

我正在尝试返回在任何范围内的指定表上设置的最后一个标识值 使用函数的过程。但是出现错误:

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/

相关文章:

java - 将应用程序部署到 AWS Lambda 会引发 Postgres 驱动程序错误

sql - 这个问题应该正确查询什么?

python - 范围内每个数字的 SQL 计数总计(编辑 : via a UDF)

sql - 为大型数据集中的每个项目选择最新条目

postgresql - 使用 pgcrypto 库计算 postgres 数据库中存在的公共(public)证书的 x5t#s256 指纹

python - 如何在 Ubuntu 上安装 pgadmin4

postgresql - Postgres 交叉表动态列数

sql - 使用 CAST 和 SUBSTRING 时如何在 postgresql 中过滤查询结果 (pgAdmin 4)

postgresql - 插入(如果不存在)并返回 id

ruby-on-rails - 编辑插入新记录