【发布时间】:2015-07-22 00:18:29
【问题描述】:
我们有多个表,并且都与第一个表的主键相关(例如:id)。 Id 被配置为一个序列,在将数据插入到第一个表时,我们在插入查询中使用sequence.nextval。
现在向其他表插入数据时,如何获取当前序列值或当前Id。
我们尝试了以下选项:
-
sequence.currval,直接在insert语句中 2.select sequence.currval from dual
以上两个选项在使用getJdbcTemplate().update()时抛出错误。
谁能建议在将数据插入第一个表后如何获取当前序列值以传递给其他表??
【问题讨论】:
-
如果在插入中使用nextval,则可以在同一会话的后续语句中使用currval。首先使用 currval,如果您建议您在插入测试中这样做,则不会起作用。但是,您在以后的语句中遇到了 currval 的哪些错误?您是否可能对相关语句使用多个会话? (这也可能会给您带来 FK 问题)。显示更多代码和错误可能会提供更多关于您做错了什么的线索。
标签: java oracle sequence spring-jdbc jdbctemplate