【问题标题】:delete "column does not exist"删除“列不存在”
【发布时间】:2023-03-23 21:17:01
【问题描述】:

我正在尝试在 Postgres 中执行一个非常简单的删除查询

查询:

delete from "Tasks" where id = "fc1f56b5-ff41-43ed-b27c-39eac9354323";

结果:

ERROR:  column "fc1f56b5-ff41-43ed-b27c-39eac9354323" does not exist
LINE 1: delete from "Tasks" where id = "fc1f56b5-ff41-43ed-...

我有一个简单的表,其中 id 是那个值。为什么"fc1f56b5-ff41-43ed-b27c-39eac9354323" 是列名?

【问题讨论】:

    标签: sql postgresql string-constant


    【解决方案1】:

    问题是您交替使用双引号 (") 和单引号 (')。 SQL将双引号“”内的内容视为标识符(即表名、过程名、列名等),字符常量需要为enclosed in single quotes

    你可以说:

    delete from "Tasks" where id = 'fc1f56b5-ff41-43ed-b27c-39eac9354323'
    

    【讨论】:

    • 没有set quoted_identifier "in SQL" 或 Postgres 之类的东西
    • 感谢您的编辑。在我的 MSSQL 上,如果我将quoted_identifier 设置为 OFF,我可以这样做:SELECT * FROM table WHERE id="someValue"
    • 嗯,这是 Microsoft SQL Server 特有的东西——既不是“SQL”,也不是对 Postgres 有效
    • 我需要的最佳答案。非常感谢@JustAPup
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多