这是我将来在JAVA应用程序中用到的SQL语句.用来往这个表里插入一条记录.
insUnPigeFileStr = "insert into ARCH.Unpigefile (unpigefileid,fileno,wordnum,title,filetypeid,screatlevelid,keeptermid,organid,keyword, makedate,pigedate,roomid, dutyer,orgid,pieceno,shareno,submiter,filetype,state,fileflag,volid,archno,re) values (ARCH.SEQ_Unpigefile.nextval,?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
insUnPigeFileStr = "insert into ARCH.Unpigefile (unpigefileid,fileno,wordnum,title,filetypeid,screatlevelid,keeptermid,organid,keyword, makedate,pigedate,roomid, dutyer,orgid,pieceno,shareno,submiter,filetype,state,fileflag,volid,archno,re) values (ARCH.SEQ_Unpigefile.nextval,?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)";
CREATE SEQUENCE SEQ_Unpigefile START WITH 10001 INCREMENT BY 1 MINVALUE 1 NOCYCLE NOCACHE ORDER;注意那个 10001 就是 max(unpigefileid) + 1 这样就不会出错了
把表数据清空再执行程序肯定没有问题。可是现在还要保留表中的内容。能不能通过一些SQL语句实现我以后每往里插入一条记录,比如,取出当前序列的值,然后删除当前序列,新建一个序列,将上一序列的值+10做为当前序列的起始位置并返回。
谢谢大侠.
请问怎么实现注意那个 10001 就是 max(unpigefileid) + 1 ,不好意思,我太笨笨了
bb++
然后再插入表中
select max(unpigefileid) from Unpigefile;--2.删除序列
DROP SEQUENCE SEQ_Unpigefile;--3.重建序列
CREATE SEQUENCE SEQ_Unpigefile START WITH (这里就是第1步得出的最大序号+1) INCREMENT BY 1 MINVALUE 1 NOCYCLE NOCACHE ORDER;
我看了一些介绍可以使用什么触发器。不知道怎么实现。其实就是在我插入动作之前做 boydgmx所说的事情。不知怎么实现。我只是想多学些东西,望各位大侠赐教.
我是这样做的。因为我不会写触发器。所以在程序,中每次执行插入语句之前,按照boydgmx(梦霄) 大哥说得那样,得到序列最值。删除序列。新建序列并且起始值为前最值+1。然后执行我的插入语句。我感觉执行效率还可以,不是太慢。呵呵。现在贴。谢谢各位参与。