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

为什么我的 PostgreSQL DELETE 语句失败并显示'错误:列不存在”?

Patricia Arquette
Patricia Arquette原创
2024-12-19 08:34:091022浏览

Why Does My PostgreSQL DELETE Statement Fail with

从 PostgreSQL 删除时出现“错误:列不存在”故障排除

尝试使用 Java JDBC 从 PostgreSQL 表中删除记录时,您可能会遇到错误,指示 DELETE 查询中指定的列不存在。要解决此问题,请考虑以下事项:

转义实体名称区分大小写

PostgreSQL 对于实体​​名称(例如表名称和列名称)区分大小写。如果您的列名称包含大写字母,则必须将其括在双引号 ("") 中以避免区分大小写。

例如,如果您的列名为“MAC”,请按如下方式修改查询:

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = 'kzhdf'";

避免在准备好的语句中直接设置值

使用不建议在准备好的语句中直接设置值的 pst.executeUpdate() 。相反,请使用 pst.setString(1, "kzhdf") 安全地设置参数值。

String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
...
pst.setString(1, "kzhdf");
pst.executeUpdate();

这可确保安全处理任何潜在的特殊字符或 SQL 注入尝试。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn