mysql的自增长非常容易,一个 AUTO_INCREMENT

就搞定,可是oracle就不行了

下面是oracle的自增长

#创建一个表
CREATE TABLE T_TEST_DEPARTMENTS (
ID NUMBER () NOT NULL,
DESCRIPTION VARCHAR2 () NOT NULL
); #创建一个表
CREATE TABLE T_TEST_DEPARTMENTS2 (
ID NUMBER () NOT NULL,
DESCRIPTION VARCHAR2 () NOT NULL
);
#设置唯一的字段
ALTER TABLE T_TEST_DEPARTMENTS ADD (CONSTRAINT) dept_pk PRIMARY KEY (ID);
ALTER TABLE T_TEST_DEPARTMENTS2 ADD (CONSTRAINT dept_pk PRIMARY KEY (ID));
#创建序列
CREATE SEQUENCE dept_seq;
CREATE SEQUENCE dept_seq2;
#触发器版本1:非空时,才使用序列的NEXTVAL值
CREATE OR REPLACE TRIGGER dept_before_insert
BEFORE INSERT ON T_TEST_DEPARTMENTS
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT dept_seq.NEXTVAL INTO :NEW.ID FROM dual ;
END ;
触发器版本2: 无视插入数据时,指定的ID
CREATE OR REPLACE TRIGGER dept_before_insert2
BEFORE INSERT ON T_TEST_DEPARTMENTS2
FOR EACH ROW
BEGIN
SELECT dept_seq2.NEXTVAL INTO :new.id FROM dual;
END;
#测试数据
INSERT INTO T_TEST_DEPARTMENTS (ID, DESCRIPTION) VALUES (, '指定ID');
INSERT INTO T_TEST_DEPARTMENTS (DESCRIPTION) VALUES ('不指定ID'); INSERT INTO T_TEST_DEPARTMENTS2 (ID, DESCRIPTION) VALUES (, '指定ID');
INSERT INTO T_TEST_DEPARTMENTS2 (DESCRIPTION) VALUES ('不指定ID');

参考转载自:http://www.cnblogs.com/xqzt/p/4452292.html

oracle的自增长的更多相关文章

  1. Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:

    Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...

  2. Oracle创建自增长主键

    Oracle主键常用的分为UUID和自增长int两种,下面简单说下各自的优缺点: UUID的优点 1.生成方便,不管是通过sys_guid() 还是java的uuid都能很方便的创建UUID. 2.适 ...

  3. Hibernate在oracle中ID增长的方式

    引用链接:http://blog.csdn.net/w183705952/article/details/7367272 Hibernate在oracle中ID增长的方式 第一种:设置ID的增长策略是 ...

  4. oracle表空间增长异常或表空间占用过高问题分析

    本人对oracle调优还处在不断学习状态,这个问题是之前处理的项目上遇到过的,顺利解决了,分享下此类问题的处理思路,不足之处,还请指正. 项目上反馈说业务表空间增长越来越快,上次新增的30G数据文件, ...

  5. ORACLE Sequence 自增长

    Sequence是数据库系统按照一定规则自动增加的数字序列.这个序列一般作为代理主键(因为不会重复),没有其他任何意义. Sequence是数据库系统的特性,有的数据库有Sequence,有的没有.比 ...

  6. Oracle创建自动增长列

    前言: Oracle中不像SQL Server在创建表的时候使用identity(1001,1)来创建自动增长列,而是需要结合序列(Sequences)和触发器(Triggers)来实现 创建测试表 ...

  7. Hibernate在oracle中ID增长的方式(续)

    引用链接:http://blog.csdn.net/w183705952/article/details/7367272 第二种:设置ID的增长策略是native,但是需要创建一个名字为hiberna ...

  8. Oracle数据库自动增长列的实现过程

    1.创建序列 -- Create sequence create sequence INNERID minvalue 1 maxvalue 99999999999999 start with 1 in ...

  9. Oracle的自增长主键

    自增长主键 --首先建一个表TEST create table TEST(  NID int PRIMARY KEY,  test1 varchar2(20),  test2 varchar2(20) ...

随机推荐

  1. Kubernetes client-go

    Github地址:https://github.com/kubernetes/client-go 访问kubernetes集群有几下几种方式: 方式 特点 支持者 Kubernetes dashboa ...

  2. CentOS7安装 VirtualBox虚拟机

    官方地址  : https://www.virtualbox.org/wiki/Linux_Downloads 1.导入 yum 源 Oracle Linux / RHEL #cd /etc/yum. ...

  3. C++中容器的使用(一)

    C++中有两种类型的容器:顺序容器和关联容器. 顺序容器主要有vector.list.deque等.其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque ...

  4. Maven配置一键部署远程Tomcat

    1. 首先需要配置远程Tomcat的访问权限(设置访问用户名密码) http://www.cnblogs.com/liuchao102/p/5519345.html 2. 配置pom.xml 添加to ...

  5. Centos6.5下Hbase安装

    下载 http://mirror.bit.edu.cn/apache/hbase/hbase-0.94.26/hbase-0.94.26.tar.gz 2.  解压 tar -zxvf hbase-0 ...

  6. Linux自定义别名alias重启失效问题

    Linux上的别名功能非常方便,例如ll可以显示文件列表的长信息,但是却不是以human能读懂的方式显示,所以我尝试直接在命令行中自定义一个别名: alisa lk='ls -lh' 然后lk就能正常 ...

  7. CentOS 7 安装 docker-compose

    compose是用来在docker中定义和运行复杂应用的小工具,比如在一个文件中定义多个容器,只用一行命令就可以让一切就绪并运行. 安装pip: 这里显示,找不到相应的包?? 说没有python-pi ...

  8. vs 2010 mvc 3.0安装软件

    下载链接如下:MVC 3安装包:http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=d2928bc1-f48c-4e95-a0 ...

  9. 【FINAL】NOI

    我就是复习一下..根本就不是什么题解...谁也看不懂的... NOI2007 社交网络         最短路 货币兑换         斜率优化动态规划 项链工厂         线段树 生成树计数 ...

  10. Delphi_检查exe文件是否是"随机基址"

    ZC: cnpack 还是蛮好用的 1.代码: procedure TForm1.btnRandomizedBaseAddressClick(Sender: TObject); var pDosHdr ...