在 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中文网其他相关文章!