在oracle数据库里创建自增ID字段的步骤

文章:http://www.jb51.net/article/53004.htm


oracle的数据库id可以用两种方法解决:
1、就是应用oracle的序列:sequence
  CREATE SEQUENCE emp_sequence
  INCREMENT BY 1            [每次加几个]
  START WITH 1                 [从1开始计数]
  NOMAXVALUE                 [ 不设置最大值]
  NOCYCLE                         [一直累加,不循环]
  CACHE 10;                       [NOCACHE ----------不缓存]
oracle的sequence是一种自增长的值,当使用时可以根据你的需要,逐增1或者是10或者是你想的任何值。
在使用序列的时候,用 emp_sequence.nextval(序列名.nextval)
每次插入的时候直接
”insert into tablename(ID) values(emp_sequence.nextVal)“即可。
2、在使用Java实现的时候,一般都是从数据库中作一次查询:
   select (max(id)+1) id from 表
   然后通过最大id+1来实现类控制id,最好的效果还是从序列实现(个人推荐)

==================================================================

在oracle里使用自增ID字段的步骤比较繁琐,总结如下:

-- 创建表

CREATETABLE ADVICE
(
IDINTNOT NULL,
ACTIVEINTDEFAULT 1 NOTNULL,
TYPEINTNOT NULL,
MSG VARCHAR2(512) NOTNULL,
ADVICE VARCHAR2(4000) NOTNULL,
PRIMARYKEY(ID),
CONSTRAINTADVICE_UNI UNIQUE(TYPE,MSG)
)TABLESPACE MYDB;
 
--创建自增ID,名称为:表名_字段名_SEQ
CREATESEQUENCE ADVICE_ID_SEQ MINVALUE 1 NOMAXVALUE INCREMENT BY1 START WITH1 NOCACHE;
 
 
-- 为Insert操作创建触发器,无需在SQL语句里写NEXTVAL,名称为表名_INS_TRG
CREATEOR REPLACE TRIGGER ADVICE_INS_TRG BEFORE INSERTON ADVICE FOREACH ROW WHEN(NEW.IDISNULL)
BEGIN
SELECTADVICE_ID_SEQ.NEXTVAL INTO:NEW.ID FROMDUAL;
END;




?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值