Oracle 标识列循环
Oracle Identity Column cycling
我可以将此 IDENT_COL 定义为根据其他列的值从最小值重新开始吗?
即如果tx_ref相同,则IDENT_COL.currentval加1,否则从1开始。
CREATE TABLE ogun_test(
col_a VARCHAR2(10),
col_b VARCHAR2(10),
tx_ref VARCHAR2(20),
ident_col NUMBER(*,0)
GENERATED BY DEFAULT AS IDENTITY
)
您可以定义循环的标识:
create table t (
c1 int
generated as identity
start with 1 cycle maxvalue 2
nocache,
c2 int
);
insert into t values ( default, 0 );
insert into t values ( default, 0 );
insert into t values ( default, 0 );
select * from t;
C1 C2
1 0
2 0
1 0
但对其他栏目而言则不然。所以你必须使用其他解决方案。
我可以将此 IDENT_COL 定义为根据其他列的值从最小值重新开始吗?
即如果tx_ref相同,则IDENT_COL.currentval加1,否则从1开始。
CREATE TABLE ogun_test(
col_a VARCHAR2(10),
col_b VARCHAR2(10),
tx_ref VARCHAR2(20),
ident_col NUMBER(*,0)
GENERATED BY DEFAULT AS IDENTITY
)
您可以定义循环的标识:
create table t (
c1 int
generated as identity
start with 1 cycle maxvalue 2
nocache,
c2 int
);
insert into t values ( default, 0 );
insert into t values ( default, 0 );
insert into t values ( default, 0 );
select * from t;
C1 C2
1 0
2 0
1 0
但对其他栏目而言则不然。所以你必须使用其他解决方案。