java - Postgresql,使用 JDBC 插入后获取生成的序列

标签 java sql-server postgresql jdbc postgresql-9.2

我们有一个 java 数据库抽象,可以为我们执行许多插入操作。在运行时我们会知道表名、要插入的列名和值。由此我们生成一个准备好的语句并执行插入。

在 sql server 领域,我们会将 select id = @@identity 添加到生成的 sql 末尾,以获取查询返回的新生成的 id。

现在我们正在迁移到 postgres,这不再有效。据我了解,在 postgres 中你可以这样做,

insert into foo(a, b) values('a', 'b') returning ID

我们的问题是,在运行时我们不知道 ID 列的名称,也不知道序列的名称。有没有办法在不知道序列名称或列名称的情况下一般获取新插入序列的值?

最佳答案

如果您的 insert 没有触发进一步的插入,您可以在 insert 语句之后使用 SELECT LASTVAL();

关于java - Postgresql,使用 JDBC 插入后获取生成的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22208095/

相关文章:

java - 获取键盘输入并对其运行检查

java - Java 中的时间戳和 mySql 中的时间戳

java - 如何使用 JAVA 在 MATLAB 中进行显式多线程处理?

postgresql - 如何创建一个具有与另一个表相关的日期序列的虚拟表?

postgresql - 如何从 Xpages 写入 PostgreSql 数据库?

java - Android APK : Duplicated resources, 为什么?

c# - 如何将数据表复制到SQL Server?

SQL 查询显示树结构中的子级总数

sql-server - 还原数据库失败 - 弹性池中的 Azure SQL 数据库

Postgresql 触发器将空字符串设置为 NULL