postrSQL中的currval函数抱怨“列不存在”

前端之家收集整理的这篇文章主要介绍了postrSQL中的currval函数抱怨“列不存在”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Postgresql的currval函数来返回名为Concept的表的最后一个插入行id. Concept有一个名为cid的串行主键,并且有一个名为Concept_cid_seq的自动生成的序列.

我尝试以下语句并得到一个错误

SELECT currval("Concept_cid_seq");
ERROR:  column "Concept_cid_seq" does not exist
LINE 1: SELECT currval("Concept_cid_seq");
                       ^

********** Error **********

ERROR: column "Concept_cid_seq" does not exist
sql state: 42703
Character: 16

但是当我运行查询时:

SELECT * from "Concept_cid_seq";

我得到一个有一行的表(正如我所料)显示了像last_value,start_value等列…

我在这里错过了什么?我是否将错误的信息传递给了currval?为什么说’专栏不存在?’

事实证明,这是大写和报价的问题.因为我想保留关系名称的大写,我需要使用单引号和双引号,以便将正确的关系名称传递给currval.

我将查询更改为SELECT currval(‘“Concept_cid_seq”’); (注意外部单引号)并且它正常工作.

猜你在找的Postgre SQL相关文章