12C中支持创建自动增长的字段(GENERATED BY DEFAULT ON NULL AS IDENTITY),类似mysql中的自增列,
下面是简单测试:
[code]SQL> CREATE TABLE t1 (c1 NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY,
2 c2 VARCHAR2(10));
Table created.
SQL> INSERT INTO t1(c2) VALUES ('abc');
1 row created.
SQL> INSERT INTO t1 (c1, c2) VALUES (null, 'xyz');
1 row created.
SQL> SELECT c1, c2 FROM t1;
C1 C2
---------- ----------
1 abc
2 xyz
SQL> insert into t1 values(4,'zyw');
1 row created.
SQL> SELECT c1, c2 FROM t1;
C1 C2
---------- ----------
1 abc
2 xyz
4 zyw
SQL> INSERT INTO t1(c2) VALUES ('abc');
1 row created.
SQL> SELECT c1, c2 FROM t1;
C1 C2
---------- ----------
1 abc
2 xyz
4 zyw
3 abc
SQL> INSERT INTO t1(c2) VALUES ('abc');
1 row created.
SQL> SELECT c1, c2 FROM t1;
C1 C2
---------- ----------
1 abc
2 xyz
4 zyw
3 abc
4 abc[/code]
另外还可以使用使用SEQUENCE当DEFAULT值达到自增列的效果,及ON NULL属性
[code]SQL> CREATE SEQUENCE default_seq;
Sequence created.
SQL> CREATE SEQUENCE default_on_null_seq;
Sequence created.
SQL> CREATE TABLE t2 (
2 col1 NUMBER DEFAULT default_seq.NEXTVAL,
3 col2 NUMBER DEFAULT ON NULL default_on_null_seq.NEXTVAL,
4 description VARCHAR2(30)
5 );
Table created.
SQL> INSERT INTO t2 (description) VALUES ('DESCRIPTION only');
INSERT INTO t2 (col1, col2, description) VALUES (999, 999, '999,999,DESCRIPTION');
INSERT INTO t2 (col1, col2, description) VALUES (NULL, NULL, 'NULL,NULL,DESCRIPTION');
1 row created.
SQL>
1 row created.
SQL>
1 row created.
SQL> commit;
Commit complete.
SQL> SELECT * FROM t2;
COL1 COL2 DESCRIPTION
---------- ---------- ------------------------------
1 1 DESCRIPTION only
999 999 999,999,DESCRIPTION
2 NULL,NULL,DESCRIPTION[/code]
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




