这是我的情况和我的约束:
我正在使用Java 5,JDBC和DB2 9.5
我的数据库表包含一个代表主键的BIGINT值。由于各种原因太复杂而无法进入,我将记录插入表中的方法是对VIEW执行插入操作; INSTEAD OF触发器从SEQUENCE中检索NEXT_VAL并执行INSERT到目标表中。
我可以更改触发器,但我无法更改基础表或通过视图插入的一般方法。
我想从JDBC中检索序列值,就像它是生成的密钥一样。
问题:如何访问从SEQUENCE中提取的值。我是否可以在DB2中触发一些消息,将此序列值浮动回JDBC驱动程序?
解决: 我求助于在单独的JDBC调用中从序列中检索PREVIOUS_VAL。
答案 0 :(得分:0)
你看过java.sql.Statement.getGeneratedKeys()吗?我不会抱太大希望,因为你做的事情很不寻常,但你永远都不知道。
答案 1 :(得分:0)
您应该能够使用FINAL TABLE语法执行此操作:
select * from final table (insert into yourview values (...) );
这将在触发所有触发器后返回数据。