0

从昨天开始,这件事让我变得愚蠢(谷歌搜索了很多,但没有找到任何其他有同样问题的开发人员)。我正在将使用 postgresql 7 用 java (jdk5) 编写的应用程序服务器升级到使用 postgresql 9 的 jdk7。

简单而荒谬的问题:

同一语句中的 INSERT 和 SELECT:

insert into table(a,b) values('a','b') ; select currval('table_pkey_id')

没有什么特别的,看起来简单明了.. 但是使用 postgresql-9.3-1100.jdbc3.jar 并不能正常工作,会在主题中引发错误。

sql 语句使用 pgadmin 像往常一样工作,返回插入行的 id。但是使用带有pg9/java7的javam进行相同的查询,它会抛出错误,就像我在一个简单的插入语句上使用executeQuery一样。

stmt=cnn.createStatement(rst.TYPE_SCROLL_INSENSITIVE,rst.CONCUR_READ_ONLY);
stmt.executeQuery(sql);

org.postgresql.util.PSQLException:查询未返回任何结果。”

为什么神?!我想要并且需要在不中断上述 2 个 sql 语句的情况下解决此问题。在 executeQuery 实现中似乎是一个非常愚蠢的错误。

请反馈。谢谢。

最大限度

4

1 回答 1

0

我认为你最好改为:

insert into table(a,b) values('a','b') RETURNING id;

现在所有支持的 PostgreSQL 版本都支持返回。

于 2013-12-07T09:13:03.430 回答