文章: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;
本文介绍了Oracle数据库中实现自增ID的两种方法:使用序列(sequence)和通过查询最大ID值加一的方式。推荐使用序列实现自增ID,同时详细展示了如何创建序列以及通过触发器实现自动填充表ID字段。

175

被折叠的 条评论
为什么被折叠?



