首页 > 数据库 > mysql教程 > 为什么使用 IN(列表)时我的 PostgreSQL DELETE 查询失败并显示'列不存在”?

为什么使用 IN(列表)时我的 PostgreSQL DELETE 查询失败并显示'列不存在”?

Mary-Kate Olsen
发布: 2024-12-17 02:59:25
原创
262 人浏览过

Why Does My PostgreSQL DELETE Query Fail with

Postgres:查询错误“列不存在”,WHERE IN(列表)

在 PostgreSQL 中,查询

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

失败“错误:列 [值] 不存在”错误。这是因为:

双引号和转义

在 PostgreSQL 中,双引号用作转义字符来引用表名和列名。当无意中与字符串文字一起使用时,可能会导致语法错误。在给定的查询中,IN 列表中的值括在双引号中,导致 PostgreSQL 将它们解释为列名而不是字符串常量。

解决方案:将值括在单引号中

至解决问题,将值括在单引号中:

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

这样,PostgreSQL 将这些值解释为字符串常量,并将它们与user_job_titles 表的 id 列。

以上是为什么使用 IN(列表)时我的 PostgreSQL DELETE 查询失败并显示'列不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板