Oracle12c:支持通过创建identity columen来实现创建自增列

oracle12c之前如果需要创建自增列必须要通过sequence+trigger来实现。但是oracle12c已经可以像mysql,sqlserver一样通过identity column来设置自增列了。

 1 Connected to Oracle Database 12c Enterprise Edition Release 12.1.0.1.0
 2 Connected as My@TEST
 3
 4 SQL>
 5 SQL> create table tab_test2
 6   2  (
 7   3      id number(38) generated as identity (start with 1 increment by 1),
 8   4      name varchar2(30),
 9   5      constraint PK_tab_test2 primary key (id)
10   6  );
11 Table created
12
13 SQL> insert into tab_test2(name)values(‘hello‘);
14 1 row inserted
15
16 SQL> select * from tab_test2;
17                                      ID NAME
18 --------------------------------------- ------------------------------
19                                       1 hello
20
21 SQL> insert into tab_test2(name)values(‘hello2‘);
22 1 row inserted
23
24 SQL> insert into tab_test2(name)values(‘hello3‘);
25 1 row inserted
26
27 SQL> select * from tab_test2;
28                                      ID NAME
29 --------------------------------------- ------------------------------
30                                       1 hello
31                                       2 hello2
32                                       3 hello3
33
34 SQL> drop table tab_test2;
35 Table dropped

当然也支持12c之前的版本所采用的方案:sequence+trigger的方案

 1 SQL>
 2 SQL> create table t_test (id number,name varchar2(100));
 3 Table created
 4 SQL> create sequence t_test_sequence
 5   2  increment by 1
 6   3  minvalue 1
 7   4  nomaxvalue
 8   5  start with 1
 9   6  cache 20
10   7  order;
11 Sequence created
12 SQL> create or replace trigger t_test_id
13   2  before insert on t_test
14   3  for each row
15   4  begin
16   5  select t_test_sequence.nextval into :new.id from dual;
17   6  end;
18   7  /
19 Trigger created
20 SQL> insert into t_test(name) values(‘hello1‘);
21 1 row inserted
22 SQL> insert into t_test(name) values(‘hello2‘);
23 1 row inserted
24 SQL> insert into t_test(name) values(‘hello3‘);
25 1 row inserted
26
27 SQL> select * from t_test;
28         ID NAME
29 ---------- --------------------------------------------------------------------------------
30          1 hello1
31          2 hello2
32          3 hello3
33
34 SQL> drop table t_test;
35 Table dropped
36
37 SQL> 

查阅文档:

http://www.xifenfei.com/2015/03/oracle-12c-%E6%96%B0%E7%89%B9%E6%80%A7identity-columns-%E5%AE%9E%E7%8E%B0oracle%E8%87%AA%E5%A2%9E%E9%95%BF%E5%88%97%E5%8A%9F%E8%83%BD.html

时间: 2025-01-01 08:02:25

Oracle12c:支持通过创建identity columen来实现创建自增列的相关文章

Oracle动态创建时间分区,以及Oracle12c中快速创建自增列

时间分区可以按照年月日时分秒进行分区,一般按照日或月分区就足够了,这里按照的是日分区 demo如下 create table APDEMO ( OID NUMBER(38) generated as identity (start with 1 increment by 1),--主键,自增列 REPORTTIME DATE , AP_MAC VARCHAR2(64 CHAR) , APALIASNAME VARCHAR2(128 CHAR) not null, HOTSPOTNAME VARC

Delphi Mercadopago支付【支持支持获取账户信息和余额、创建商店,商店查询、创建二维码、二维码查询、创建订单、订单查询、订单退款等功能】

Delphi Mercadopago支付下载 [Delphi Mercadopago支付]支持 支持支持获取账户信息和余额.创建商店,商店查询.创建二维码.二维码查询.创建订单.订单查询.订单退款等功能 原文地址:https://www.cnblogs.com/zhimamaigua/p/11251646.html

Azure技术08-虚拟机-创建高性能存储,并创建DS系列虚拟机

在使用Azure虚拟机过程中,不免遇到一些应用对磁盘IOPS要求非常高,针对高IOPS要求的应用,我们在以前只能通过Windows系统层面创建RAID的方式来提升磁盘性能,其实Azure高级存储Premium Storage在今年上半年就已经正式向广大用户推出,亮点在于Premium Storage服务采用SSD,并能够带来最高32TB存储容量以及每个VM高达64000 IOPS(即每秒IO操作次数). 在Azure Portal上现在是不支持图形化界面来创建Premium Storage的,所

NET设计模式 第二部分 创建型模式(6):创建型模式专题总结(Creational Pattern)

创建型模式专题总结(Creational Pattern) ——.NET设计模式系列之七 Terrylee,2006年1月 概述 创建型模式,就是用来创建对象的模式,抽象了实例化的过程.它帮助一个系统独立于如何创建.组合和表示它的那些对象.本文对五种常用创建型模式进行了比较,通过一个游戏开发场景的例子来说该如何使用创建型模式. 为什么需要创建型模式 所有的创建型模式都有两个永恒的主旋律:第一,它们都将系统使用哪些具体类的信息封装起来:第二,它们隐藏了这些类的实例是如何被创建和组织的.外界对于这些

MySQL在创建数据表的时候创建索引

转载:http://www.baike369.com/content/?id=5478 MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可以直接创建索引.基本的语法格式如下: CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [索引名](字段名1 [(长度)] [ASC | DESC]) ); UNIQUE:可选.表示索引为唯一性索引. FULLTEXT:可选.表示索引为全

示例-创建表格-指定行列&删除表格的行和列

<body> <script type="text/javascript"> /* *上面的方法和你麻烦.*既然操作的是表格,*那么最方便的方式就是使用表格节点对象的方法.* *表格是由行组成.表格节点对象中insertRow方法就完成了创建行并添加的动作.* *行是有单元格组成.通过tr节点对象的insertCell来完成.*/function crtTable(){ var oTabNode = document.createElement("ta

MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

MFC小程序截图: 一.在MFC中简单使用WebBrowser的ActiveX插件的方法: 见博文:  http://blog.csdn.net/supermanking/article/details/5866213 二.在对话框中创建视图(我这里创建的是一个滚动视图): 见博文: http://blog.csdn.net/clever101/article/details/4873994 http://blog.csdn.net/clever101/article/details/37790

orcle创建自增列

刚刚用orcle,组长让我设计一张表,结果设计完了以后就在PLSQL设计主键ID,因为如果不用自增列的话就得用复合主键,所以就想着用ID的自增列来表示.可是他和SQL Server又有点不太一样,他没又自增列.所以在网上查了一下,两种方法. 方法1:触发器 首先先创建一张测试表t_demo create table t_demo ( id number(20) primary key, username varchar2(20) ) 第一步:创建squence create sequence d

Oracle自增列创建方法

最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 先建一个测试表了: create table userlogin( id   number(6) not null, name   varchar2(30)   not null primary key ) tablespace users /