xiaoliu66007
就是创建一个SEQUENCE,通过它来获取自增ID, 
CREATE SEQUENCE MY_TABLE_SEQ
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
NOCACHE -- 不建缓冲区

 

如何用? 
插入的时候这样: 
INSERT INTO MY_TABLE (ID) VALUES (MY_TABLE_SEQ.NEXTVAL);  
要把当前这个ID返回可以这样: 
SELECT MY_TABLE_SEQ.CURRVAL FROM DUAL;  

 

 此时已经可以用了。
 
 
注意: 
MY_TABLE_SEQ.CURRVAL 要和 MY_TABLE_SEQ.NEXTVAL配合起来用。 
先MY_TABLE_SEQ.NEXTVAL了,才能取MY_TABLE_SEQ.CURRVAL。
 
可以通过程序实现或触发器进一步改善。

CREATE TRIGGER example_triger BEFORE

INSERT ON example FOR EACH ROW WHEN (new.id is null)--只有在id为空时,启动该触发器生成id号

begin

select

MY_TABLE_SEQ.nextval into: new.id from dual;

end;


测试一下,插入数据


insert into example(name) values(\'张三\');

insert into example(id, name) values(111,\'李四\');

 

分类:

技术点:

相关文章:

  • 2021-11-18
  • 2022-01-31
  • 2021-12-04
  • 2021-12-22
  • 2021-10-09
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-07
  • 2021-09-14
  • 2022-12-23
  • 2021-12-22
  • 2022-02-20
相关资源
相似解决方案