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

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

·对列的个数没有限制

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

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

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

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

SQL> drop sequence test_seq;
SQL> create sequence test_seq start with ;
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();
SQL> commit; --结果显示可以插入null、字面值,而不使用sequence的值。插入default值的时候就使用sequence的值。
SQL> select * from sequence_test_tab; ID
---------- SQL> select count(*) from sequence_test_tab; COUNT(*)
---------- SQL> --插入数据时,如果没有指定该列,也会使用sequence的值来默认插入
alter table sequence_test_tab add (col_2 number);
insert into sequence_test_tab(col_2) values();
SQL> select * from sequence_test_tab; ID COL_2
---------- ---------- rows selected. SQL>

Oracle 12C -- 基于sequence的列的默认值的更多相关文章

  1. 使用hibernate annotation 为非空列加上默认值

    在网上查了很多资料都没找到如何为非空列加上默认值 以前的做法是给字段一个初始值,加上dynamic-insert属性 换了annotation了以后没有找到如何设置dynamic-insert属性 但 ...

  2. sql 列设置默认值,语法查询知识点积累

    一.修改字段默认值 alter table 表名 drop constraint 约束名字   ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约 ...

  3. SQLServer判断指定列的默认值是否存在,并修改默认值

    SQLServer判断指定列的默认值是否存在,并修改默认值 2008年10月21日 星期二 下午 12:08 if exists(select A.name as DefaultName,B.name ...

  4. Oracle 12C -- Identity Columns(标识列)

    Identity Columns很适合数据库中需要"surrogate keys"的场景.依赖sequence产生器,每行的标识列会被赋予一个自增或自减的值.缺省,标识列在创建的时 ...

  5. ORACLE 12C Identity Column(身份列) 实现自增长字段

    Oracle 12c提供的Identity Column特性简化了自增字段的定义. 声明自增字段通常有3种常见的用法,以下三种方式都支持INSERT语句中省略自增字段的插入,但有些许差别. 1. GE ...

  6. SQL Server2008为表的某列设置默认值为SQL Server函数

      例如,设置SQL Server函数GETDATE()作为默认值:

  7. SQLServer------查询结果为空的列赋默认值

    ISNULL(字段,默认值) 如:SELECT ISNULL(name,'无名') FROM [User]

  8. Oracle 12c的自增列Identity Columns

    在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterpr ...

  9. Oracle 12C -- 在相同的列的集合上创建多个索引

    在12C中,可以在相同的列的集合上创建多个索引,但是多个索引的类型要不同.同一时刻,只有一个是可见的. SQL> create table emp_tab as select * from em ...

随机推荐

  1. C++ 纯虚方法

    1.纯虚方法解决什么样的问题,为什么要设计出纯虚方法? 考虑下面的需求,基类声明了一个方法,这个方法只针对具体的子类才有意义,比如Animal的Eat()方法,调用Animal的Eat方法是没有意义的 ...

  2. Laravel的目录结构分析

    根目录结构/app/bootstrap/public/vendorartisancomposer.jsonserver.php 1./app整个Laravel 目录中最需要我们注意的地方,包含设置(c ...

  3. ext js/Ext.Net_演示 htmleditor 上传&插入图片

    本文内容 解决方案结构 HtmlEditor_Upload.js 脚本 HtmlEditorUploadImg.ashx 上传图片到服务器 演示 htmleditor 控件添加插入图片功能   解决方 ...

  4. 在线创建springboot项目

    在线创建srpingboot项目的网址:https://start.spring.io/ 我只选了一个web,然后开始生成:

  5. MVC 之 缓存机制(二)

    八.应用程序缓存 应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中. 使用应用程序缓存与使用应用程序状态类似. 但是,与应用程序状态不同的是,应用程序缓存中的数据是易失的, 即数据 ...

  6. 【树莓派】crontab设置Linux设备定时重启

    简介:设置Linux设备定时重启或者关机 问题:有台设备每天总需要使用的人手动重启一下才可以正常工作,但是检查了日志,看起来服务一切都正常.时间和正确时间相差4mins. 解决办法: 1.增加定时任务 ...

  7. 微信小程序 - 时间轴(组件)

    更新日期: 2019/3/6:首次发布 2019/3/7:增加content和date自定义(具体使用看示例) 时间轴 参数: 1. data(新闻列表数据)- 2019/3/6 2. content ...

  8. Aerospike系列:7:数据分布详解

    1:Aerospike数据库是Shared-Nothing架构,集群中的每个节点都是相同的,不会出现单点故障. Aerospike有智能分区算法,即把用户输入的key在内部根据RIPEMD-160算法 ...

  9. itextpdf 备忘

    加删除线: .setUnderline(Color.BLACK, 2.0f, 0.0f, 6.0f, 0.0f, 1) https://developers.itextpdf.com/examples ...

  10. 高级加密标准(英语:Advanced Encryption Standard,缩写:AES)

    2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一.