文章: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;