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