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

为什么我的 PostgreSQL DELETE 查询失败并显示'列不存在”?

Mary-Kate Olsen
发布: 2024-12-18 00:29:08
原创
657 人浏览过

Why Does My PostgreSQL DELETE Query Fail with

PostgreSQL DELETE 查询中不存在列

在 PostgreSQL 中,运行带有“WHERE IN”子句的 DELETE 查询需要特别注意。由于熟悉其他 SQL 方言而导致的一个常见错误是对字符串常量使用双引号。

在提供的示例中,查询尝试根据 ID 列表从“user_job_titles”表中删除行用双引号括起来:

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

但是,双引号在 PostgreSQL 中具有特殊含义。它们用于转义表名和列名。因此,查询失败,并显示错误,指出名称为“c836d018-1d12-4507-a268-a4d80d6d3f54”的列不存在。

要修复查询,请将双引号替换为单引号对于字符串常量:

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

记住,双引号仅用于括起来PostgreSQL 中的表名和列名,而单引号用于字符串文字。使用正确的引用类型对于正确执行 SQL 查询至关重要。

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

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