达梦sequence在不使用nextval的情况下获得currval的方法
currval同oracle,是很不中用的(可能本来也不建议使用),它至少有两个缺点:1、在当前会话没有进行nextval的情况下,查看值会报错。2、如果别的会话执行了nextval,当前会话的currval并不会更新。
我是看到一个stackoverflow的讨论以后知道该怎么做:https://stackoverflow.com/questions/10210273/how-to-retrieve-the-current-value-of-an-oracle-sequence-without-increment-it
简单来说,一般没必要这样做。直接用nextval即可。
如果实在要这样做,就查all_sequences表或者user_sequences表。
文章讨论了在达梦数据库系统中,currval如同Oracle一样存在一些限制,如未调用nextval时查看currval会报错,以及多会话环境下currval不自动更新的问题。作者建议通常直接使用nextval是更好的选择。但若需要获取currval,可以查询all_sequences或user_sequences表来实现。
1356





