java sql从插入查询返回id

时间:2015-03-26 15:04:12

标签: sql postgresql sql-insert

我有下一个SQL模板:

INSERT_QUERY   = "INSERT INTO "article" (article_table, article_id) VALUES ({1}, {2}) RETURNING article_id";

我无法更改此模板。任务是从sql base返回id。我做了什么:

PreparedStatement insert_query = db.prepareStatement(String.format(INSERT_QUERY, table, id));
insert_query.executeUpdate();
ResultSet result_id = insert_query.getGeneratedKeys();
if(result_id.next()){
   id = result_id.getInt(1);
}
System.out.println(this.id);

但是这段代码确实插入了值,但没有返回任何内容((

  

线程中的异常" main" org.postgresql.util.PSQLException:A   当没有人预期时,结果被返回。

如果我改为:

db.prepareStatement(String.format(INSERT_QUERY, table, id), PreparedStatement.RETURN_GENERATED_KEYS);

sql查询变为:

INSERT INTO "article" (article_table, article_id) 
VALUES ({1}, {2}) RETURNING article_id RETURNING *

无效。 所以我的问题是,我有什么方法可以使用现有模板来返回id或最终我需要更改它?

0 个答案:

没有答案