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. MySQL备份账号权限

    grant select,show view,lock tables,trigger on confluence.* to 'DBbackup'@'127.0.0.1' identified by ' ...

  2. c++ boost库学习一:时间和日期

    timer类 #include <boost\timer.hpp> #include "iostream" using namespace std; int _tmai ...

  3. ubuntu 的mysql 安装过程和无法远程的解决方案

    ubuntu 的mysql 安装过程和无法远程的解决方案 安装完mysql-server启动mysqlroot@ubuntu:# /etc/init.d/mysql start (如果这个命令不可以, ...

  4. MySQL/MariaDB数据库备份与恢复之mysqlpump入门操作

    创建测试用表:MariaDB [music]>  create table summary(id int,info char(128));Query OK, 0 rows affected (0 ...

  5. linux下java unrecognized class file version错误的解决

    root@Mr javaPC]# java HelloWorldException in thread “main” java.lang.ClassFormatError: HelloWorld (u ...

  6. java深入探究13-js,ajax

    链接:http://pan.baidu.com/s/1c2D0cAs 密码:uwm6 1.js 1)三种基本类型: var num=100; var str="哈哈"; var f ...

  7. table-layout 属性

    最近被测试提了一个bug,表单的某个字段有1300的字数限制,测试填了1300字,提交后,表格上的呈现丑爆了,那个字段的所在的列撑满了整个表格,其他列被压缩的很小. 后来知道了table-layout ...

  8. psd文件中截取固定大小的图片

    1.选择需要操作的图层 使用选框工具, 设置固定大小和固定大小的值,在图层上拉取选区 2.使用移动工具  使用垂直.水平居中 使选择的icon在选区块中间 3.再选择好块区域调整好位置后 使用截取工具 ...

  9. BZOJ3242/UOJ126 [Noi2013]快餐店

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  10. flsk-SQLALchemy

    SQLALchemy 一.介绍     SQLALchemy是一个基于Python实现的ORM框架.该框架是建立在DB API之上,使用关系对象映射进行数据库操作     简言之便就是:将类和对象转换 ...