Oracle自增字段设置

Oracle确实强大,强大到设置一个自增字段都会这么麻烦 – -,从在CentOS下安装到使用真可谓困难重重,让我这只菜鸟吃了不少苦头,做个手记先,在Oracle中设置自增字段需要两个工具,一个叫Sequence(序列),另一个就是常用的Trigger(触发器)。
USERS表结构:

CREATE TABLE “USERS”
(
“USERID” NUMBER(11,0) NOT NULL ENABLE,
“USERNAME” VARCHAR2(45 BYTE) NOT NULL ENABLE,
“USERPWD” VARCHAR2(45 BYTE) NOT NULL ENABLE,
“USEREMAIL” VARCHAR2(45 BYTE) DEFAULT NULL,
CONSTRAINT “USERS_PK” PRIMARY KEY (”USERID”)
)


1. 创建一个Sequence用来设置自增规则:

CREATE SEQUENCE S_USERS_USERID NOMAXVALUE NOCYCLE

Sequence的语句说明:

INCREMENT BY 1 — 每次加几个
START WITH 1 — 从1开始计数
NOMAXVALUE — 不设置最大值
NOCYCLE — 一直累加,不循环

现在就可以使用S_USERS_USERID.CURRVAL(返回Sequence当前值)和S_USERS_USERID.NEXTVAL(返回增加后的值)了。

2. 创建一个Trigger来使用Sequence,并在USERS表Insert的时候触发:

CREATE OR REPLACE TRIGGER R_USERS_I
BEFORE INSERT ON USERS
FOR EACH ROW
BEGIN
  SELECT S_USERS_USERID.NEXTVAL INTO :new.USERID FROM sys.DUAL;
END;

注:sys.DUAL是一个由sys用户创建的表,常用在没有目标表的Select语句块中。

3. 可以插入数据测试一下了。

INSERT INTO USERS(username, userpwd, useremail) VALUES(’Bindiry’, ‘474900f17965f09aee38cd884ec2f4a8′, ‘bindiry@xxx.com’);

 

from:http://junnan.org/blog/?p=918

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值