设为首页 - 加入收藏 PHP编程网 - PHP站长网 (http://www.52php.cn)- 电商,百科,编程,业界,移动互联,5G,云计算,站长网!
热搜: 娱乐 站长之家 服务 百度
当前位置: 首页 > 站长百科 > 正文

oracle – 从标识列的后备序列获取nextval

发布时间:2021-01-24 12:11 所属栏目:[站长百科] 来源:网络整理
导读:我有一个像这样声明的表列: file_id number(10) generated always as identity primary key, 是否有可能以编程方式从其后备序列中获取currval / nextval而无需实际查看SYS.表获取序列的名称,然后在该名称上使用execute immediate? 解决方法 Is it possib

我有一个像这样声明的表列:

file_id number(10) generated always as identity primary key,

是否有可能以编程方式从其后备序列中获取currval / nextval而无需实际查看SYS.表获取序列的名称,然后在该名称上使用execute immediate?

解决方法

Is it possible to programatically get a currval/nextval from its
backing sequence without actually looking into the SYS

是的,如果你真的需要这样做的话.您可以在USER_SEQUENCES数据字典视图中查找该序列名称,或者更好的是USER_TAB_IDENTITY_COLS数据字典视图,并在查询中引用它.这是一个例子:

create table t1(
  c1 number  generated always as identity primary key
);

insert into t1 values(default);

select *  from t1;

C1
-----
    1

在我的例子中,Oracle为标识列创建的序列名称是ISEQ $$_ 92984.

select "ISEQ$$_92984".nextval from dual;

NEXTVAL
-------
     2

insert into t1 values(default);

select * from t1;

 C1
 ---------
         1
         3

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

推荐文章
热点阅读