Oracle 12C -- 基于sequence的列的默认值
生活随笔
收集整理的這篇文章主要介紹了
Oracle 12C -- 基于sequence的列的默认值
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
12C支持先創(chuàng)建一個sequence,然后再將該sequence指定為某個列的值的默認表達式。
?
和"identity column"具有以下不同點:
·對列的個數(shù)沒有限制
·sequence必須在列定義之前定義
·如果刪除了sequence,會導致后面的insert報錯
·表的owner,和使用者對該sequence必須有select權(quán)限
·可以手動插入、更新該列(不使用sequence產(chǎn)生的值)
?
SQL> drop sequence test_seq; SQL> create sequence test_seq start with 1; SQL> drop table sequence_test_tab; SQL> create table sequence_test_tab(id number default test_seq.nextval); SQL> insert into sequence_test_tab values(null); SQL> insert into sequence_test_tab values(null); SQL> insert into sequence_test_tab values(default); SQL> insert into sequence_test_tab values(default); SQL> insert into sequence_test_tab values(10000); SQL> commit;--結(jié)果顯示可以插入null、字面值,而不使用sequence的值。插入default值的時候就使用sequence的值。 SQL> select * from sequence_test_tab;ID ----------1210000SQL> select count(*) from sequence_test_tab;COUNT(*) ----------5SQL> --插入數(shù)據(jù)時,如果沒有指定該列,也會使用sequence的值來默認插入 alter table sequence_test_tab add (col_2 number); insert into sequence_test_tab(col_2) values(99); SQL> select * from sequence_test_tab;ID COL_2 ---------- ----------12100003 996 rows selected.SQL>
?
轉(zhuǎn)載于:https://www.cnblogs.com/abclife/p/4720467.html
總結(jié)
以上是生活随笔為你收集整理的Oracle 12C -- 基于sequence的列的默认值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新车保养一次多少钱,什么时候开始保养?
- 下一篇: Caused by: java.sql.