问题描述
我已经在 Postgresql 中创建了表:
DROP TABLE IF EXISTS es_events;
CREATE TABLE IF NOT EXISTS es_events (
id SERIAL, name VARCHAR (50) NOT NULL, version INT NOT NULL, data BYTEA NOT NULL
);
现在我正在尝试从此表中进行选择:
SELECT COALESCE(MAX(version),0)
FROM public.es_events
WHERE name = 'asd';
但结果我收到:
ERROR: column "version" does not exist
LINE 1: SELECT COALESCE(MAX(version),0)
^
HINT: Perhaps you meant to reference the column "es_events. version".
sql state: 42703
Character: 21
我尝试使用“es_events.version”,但没有帮助:
ERROR: column "es_events. version" does not exist
LINE 1: SELECT COALESCE(MAX("es_events. version"),0)
^
sql state: 42703
Character: 21
我做错了什么?如何从表中选择?
# psql --version
psql (Postgresql) 13.3 (Debian 13.3-1.pgdg100+1)
解决方法
根据您的错误消息,您创建的表的列名为 " version"
(有两个前导空格)而不是 version
。
您可以重命名列:
ALTER TABLE es_events RENAME " version" to version;
,
create table
中有空格,修复表创建脚本名称后开始正常工作:
CREATE TABLE IF NOT EXISTS es_events (id SERIAL,name VARCHAR (50) NOT NULL,version INT NOT NULL,data BYTEA NOT NULL)