我来自SQL Server,惊讶地发现以下查询不起作用:

DELETE FROM user_job_titles WHERE id IN (
"c836d018-1d12-4507-a268-a4d80d6d3f54",
"d0961a90-7d31-4c4c-9c1b-671115e3d833",
"62dda420-6e62-4017-b41d-205c0aa82ead"
)

其中,用户职务有以下列:
id
user_id
job_title_id

错误是:
ERROR:  column "c836d018-1d12-4507-a268-a4d80d6d3f54" does not exist
LINE 2: "c836d018-1d12-4507-a268-a4d80d6d3f54"

我正在使用最新postgresql版本的pgAdmin。是否有其他方法运行此查询?

最佳答案

对字符串常量使用单引号:

DELETE FROM user_job_titles
    WHERE id IN ('c836d018-1d12-4507-a268-a4d80d6d3f54',
                 'd0961a90-7d31-4c4c-9c1b-671115e3d833',
                 '62dda420-6e62-4017-b41d-205c0aa82ead'
                );

双引号是用于表名和列名的转义字符。因此产生了错误。

关于sql - postgres-(list)中的位置-列不存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35814771/

10-12 12:51
查看更多