Currval 函数在PostgreSQL中抱怨 "列不存在"[英] currval Function in PostgreSQL complaining that "column does not exist"

本文是小编为大家收集整理的关于Currval 函数在PostgreSQL中抱怨 "列不存在"的处理方法,想解了Currval 函数在PostgreSQL中抱怨 "列不存在"的问题怎么解决?Currval 函数在PostgreSQL中抱怨 "列不存在"问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试使用 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?为什么它说"列不存在"?

推荐答案

原来这是大小写和引号的问题.因为我想保留关系名称的大小写,所以我需要使用 both 单 和 双引号来将正确的关系名称传递给 currval.

我将查询更改为 SELECT currval('"Concept_cid_seq"');(注意外面的单引号)并且它工作正常.

本文地址:https://www.itbaoku.cn/post/1763844.html