我有一个Number数据类型和Nullable的列。现在没有可用的记录。并使用next_val生成列值。
列的第一个值是否能够生成数字,或者我必须手动分配第一个数字。
如果不清楚,请告诉我。
答案 0 :(得分:2)
创建序列,并使用 sequence.nextval 来使用序列号。
例如,
SQL> CREATE SEQUENCE s START WITH 1 INCREMENT BY 1;
Sequence created.
SQL>
SQL> CREATE TABLE t(A NUMBER);
Table created.
SQL>
SQL> INSERT INTO t SELECT s.nextval FROM dual;
1 row created.
SQL>
SQL> SELECT * FROM t;
A
----------
1
SQL>
我写了一篇关于触发序列方法的小文章来填充先前12c版本中的序列。见http://lalitkumarb.wordpress.com/2015/01/20/auto-increment-primary-key-in-pre-12c-releases-identity-functionality/
如果您使用的是12c,则可以使用 IDENTITY列。阅读http://lalitkumarb.wordpress.com/2015/01/20/identity-column-autoincrement-functionality-in-oracle-12c/