【发布时间】:2020-08-22 05:00:03
【问题描述】:
我是使用 DBeaver 和 Oracle 的新手,我正在尝试创建一个自动递增 PK 字段。我一直在研究,找不到任何关于它的信息。
【问题讨论】:
我是使用 DBeaver 和 Oracle 的新手,我正在尝试创建一个自动递增 PK 字段。我一直在研究,找不到任何关于它的信息。
【问题讨论】:
在 12c 中,您有多种选择
身份列
SQL> create table t ( id number generated always as identity ( start with 1 increment by 1 ) primary key, c2 number ) ;
Table created.
SQL> insert into t ( c2 ) values ( 1 ) ;
1 row created.
SQL> select * from t ;
ID C2
---------- ----------
1 1
SQL>
有关身份列的不同选项,请参阅此链接
序列
SQL> create sequence t_sq start with 1 increment by 1 ;
Sequence created.
SQL> create table t ( id number default t_sq.nextval primary key, c2 number ) ;
Table created.
SQL> insert into t ( c2 ) values ( 1 ) ;
1 row created.
SQL> select * from t ;
ID C2
---------- ----------
1 1
正如您在上面看到的,您可以选择使用 IDENTITY 列,也可以创建一个序列并将序列的 nextval 作为默认值分配给该列。
无论哪种情况,您都有一个自动增量 id 作为主键。
【讨论】: