有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

PostgreSQL:通过Java更新我的用户表

在PostgreSQL中user是一个保留关键字,在内部表中使用,但是我在自己的数据库中也有一个单独的user表需要使用。每当我试图在表上执行INSERT或UPDATE语句时,它都会生成以下错误:The column name 'id' was not found in this ResultSet

这是我目前使用的Java代码:

PreparedStatement stat1 = conn.prepareStatement("SELECT id FROM user;");
PreparedStatement stat2 = conn.prepareStatement("UPDATE user SET date_created = ? , last_updated = ? , uuid = ? WHERE id = ?;");
ResultSet rs = stat1.executeQuery();
while(rs.next()){
    UUID uuid = UUID.randomUUID();
    String tempId = uuid.toString();

    stat2.setTimestamp(1, curDate);
    stat2.setTimestamp(2, curDate);
    stat2.setString(3, tempId);
    stat2.setLong(4,rs.getLong("id"));

    stat2.executeUpdate();
}

所以我的问题是,如何在不干扰关键字限制的情况下插入或更新personal user表中的值


共 (2) 个答案

  1. # 1 楼答案

    使用这个:

    prepareStatement("UPDATE \"user\" set date_created = ?")
    

    或者,最好将user表重命名为其他名称,例如users

    ALTER TABLE "user" RENAME TO users;
    
  2. # 2 楼答案

    像这样转义表名

    select * from "user";