0

在 PostgreSQLuser中是一个保留关键字,用于内部表,但是我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();
}

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

4

2 回答 2

2

用这个:

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

或者,更好的是,将您的user表格重命名为其他名称,例如users

ALTER TABLE "user" RENAME TO users;
于 2013-05-29T08:10:26.510 回答
1

像这样转义表名

select * from "user";
于 2013-05-29T07:59:01.360 回答