Oracle 12C -- 基于sequence的列的默认值
2015-08-11 11:19
155 查看
12C支持先创建一个sequence,然后再将该sequence指定为某个列的值的默认表达式。
和"identity column"具有以下不同点:
·对列的个数没有限制
·sequence必须在列定义之前定义
·如果删除了sequence,会导致后面的insert报错
·表的owner,和使用者对该sequence必须有select权限
·可以手动插入、更新该列(不使用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>
相关文章推荐
- oracle求每月第一天和最后一天
- oracle数据库问题集
- Oracle创建用户、角色、授权、建表
- Oracle 12C -- Invisible Columns
- ORACLE EBS常用表
- 第二讲 PLSQL连Oracle数据库
- java语言测试连接oracle数据库
- Oracle 12C -- truncate的级联操作
- Oracle 12C -- Identity Columns(标识列)
- oracle向in语句传入参数查不出数据
- kettle能抽取oracle的clob字段么?
- 在SQL service或Oracle中将数字转换成有千位符号
- Oracle 基础篇 --- 索引选项
- Oracle修改默认字符编码
- 深入解析Oracle学习笔记(第四章)
- Oracle查询数据库中所有表的记录数
- ORACLE FORMS Builder 设置栏位背景颜色
- mysql和oracle的一个汉字占几个字符
- oracle 常见名词及辨析
- 【Oracle】PL/SQL实现打印1-100中的素数