Postgres DELETE 查询错误:“列不存在”
在PostgreSQL中执行DELETE语句时,你可能会遇到“ERROR: column "column name" does not exist”的错误。这个令人困惑的错误通常发生在查询条件中的变量被双引号(")括起来时,PostgreSQL会将其解释为列名而不是值。
例如,以下查询会导致上述错误:
<code class="language-sql">delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";</code>
错误信息表明PostgreSQL试图在"Tasks"表中查找名为"fc1f56b5-ff41-43ed-b27c-39eac9354323"的列。然而,这个列并不存在。
问题在于PostgreSQL将用双引号(")括起来的内容视为标识符,包括表名、过程名和列名。在本例中,由于使用了双引号,PostgreSQL错误地将值"fc1f56b5-ff41-43ed-b27c-39eac9354323"解释为列名。
要解决此问题,请确保字符常量用单引号(')而不是双引号括起来。单引号允许PostgreSQL正确地识别指定的值为常量而不是列名。正确的查询应该是:
<code class="language-sql">delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323';</code>
以上是为什么我的 Postgres DELETE 查询失败并显示'列不存在”?的详细内容。更多信息请关注PHP中文网其他相关文章!