我们有一个java数据库抽象,它为我们做了很多插入。在运行时,我们将知道表名、要插入的列名和值。从中我们生成一个准备好的语句并进行插入。
在sql server语言中,我们将select id=@identity附加到生成的sql的末尾,以获取查询返回的新生成的id。
现在我们要迁移到postgres,这已经不起作用了。我的理解是在博士后你可以做,

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

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

最佳答案

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

07-25 23:48
查看更多