错误:列不存在(Error: Column does not exist)

2019-07-21 04:32发布

我已经能够PostgreSQL的链接到Java。 我已经能够在表中显示的所有记录,但我无法执行删除操作。

这里是我的代码:

con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE MAC = 'kzhdf'";
pst = con.prepareStatement(stm);
pst.executeUpdate(); 

请注意,MAC是一个字符串字段,并用大写字母表示。 该字段存在于表中。

我正的错误:

重度:ERROR:列“陆委会”不存在

Answer 1:

当谈到PostgreSQL和用大写字母实体名称(表,列等),你需要将其置于“”“逃离”这个词。 请参考文档关于这个问题。 所以,你的例子是这样写的:

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

在一个侧面说明,考虑到你正在使用预处理语句,你不应该值直接在SQL语句中设置。

con = DriverManager.getConnection(url, user, password);
String stm = "DELETE FROM hostdetails WHERE \"MAC\" = ?";
pst = con.prepareStatement(stm);
pst.setString(1, "kzhdf");
pst.executeUpdate();


文章来源: Error: Column does not exist