• Oracle 12C -- 基于sequence的列的默认值


    12C支持先创建一个sequence,然后再将该sequence指定为某个列的值的默认表达式。

    和"identity column"具有以下不同点:

    ·对列的个数没有限制

    ·sequence必须在列定义之前定义

    ·如果删除了sequence,会导致后面的insert报错

    ·表的owner,和使用者对该sequence必须有select权限

    ·可以手动插入、更新该列(不使用sequence产生的值)

    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;
    
    --结果显示可以插入null、字面值,而不使用sequence的值。插入default值的时候就使用sequence的值。
    SQL> select * from sequence_test_tab;
    
            ID
    ----------
    
    
             1
             2
         10000
    
    SQL> select count(*) from sequence_test_tab;
    
      COUNT(*)
    ----------
             5
    
    SQL> 
    
    --插入数据时,如果没有指定该列,也会使用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
    ---------- ----------
    
    
             1
             2
         10000
             3         99
    
    6 rows selected.
    
    SQL> 
  • 相关阅读:
    OpenERP Framework API存档
    OpenERP 7 picking order 继承需要注意的地方
    Unity战斗系统之AI自主决策
    简易2D横版RPG游戏制作
    UGUI之Canvas Group
    UGUI之Canvas和EventSystem
    NGUI之scroll view的制作和踩坑总结
    NGUI之Toggle实现单选框
    Unity中对象池的使用
    继承MonoBehaviour类的优缺点和相关报错
  • 原文地址:https://www.cnblogs.com/abclife/p/4720467.html
Copyright © 2020-2023  润新知