我有一个像这样声明的表格列:
IBM i
是否可以以编程方式从其后备序列中获取file_id number(10) generated always as identity primary key,
/ currval
而无需实际查看SYS。表获取序列的名称,然后在该名称上使用nextval
?
答案 0 :(得分:6)
是否可以以编程方式从中获取currval / nextval 支持序列而不实际查看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