【发布时间】:2020-02-10 23:24:06
【问题描述】:
我正在使用 Java PreparedStatement 对象将行插入到 Postgres 数据库表中。 (我的代码如下:)
...
// define values to insert
LocalDateTime localDateTime = LocalDateTime.now();
int num = 3;
double frac = 0.8;
//create PreparedStatement
PreparedStatement st = conn.prepareStatement("INSERT INTO TABLE_Final_Records(Datetime, Number_n, Fraction_f)"
+ "VALUES (?,?,?)" );
// set placeholder ("?") values as Postgres types
st.setObject(1, localDateTime);
st.setInt(2, num);
st.setDouble(3, frac);
// execute statement
st.executeUpdate();
st.close();
...
但是,当我执行上述代码时,我得到了错误(通过捕获的 SQLException 的 toString()):
org.postgresql.util.PSQLException: 错误: 关系 “table__final__records”不存在。
上面代码中指定的每个大写字符在抛出异常的文本中显示为小写。
如果我手动将数据库表重命名为全部小写,则错误消除,无需更改代码。但是它被替换为:
org.postgresql.util.PSQLException:错误:列“日期时间”的 关系“table_final_records”不存在
一个明显的解决方法是将 Postgres 数据库中所有表名和列名中的所有大写字符手动转换为小写,但是我想知道如何在此类语句上强制区分大小写,以便 PostgreSQL 数据库可以正确识别和更新带有大写字符的表名和列名。
谢谢
【问题讨论】:
标签: java sql postgresql jdbc