------------------------一个例子-----------------------
create   sequence   for_test  --序列名     
increment   by   1     --每次增加1
start   with   1     --从1开始
nomaxvalue     --没有最大值
nocache        --没有缓存序列----------------------------创建测试表------------------
create table Test
(
id number(10) primary key,
name varchar2(20) not null,
desc  varchar2(200) null
)-----------------------------使用序列-------------------
insert into Test
values(for_test.nextval,'序列测试','这是一个序列使用的例子')--------------------序列使用结果查询-----------------
select * from test
我在插入的时候不想写for_test.nextval 可以吗?
如:
insert into Test
values('序列测试','这是一个序列使用的例子')可以不?

解决方案 »

  1.   

    可以.直接将序列写在trigger里.当插入新数据的时候.自动从for_test 序列中取一个 nextval
      

  2.   


    写触发器是个好方法, 楼主写上的花,写SQL也可以简单的。比如在插入的时候,如果不写序列,那写多写好多列名呀。  楼主自己决定...
      

  3.   

    除了上面说的还有更好的方法吗?
    那怎么重置序列啊?就是在我 用truncate删除表结构时,我要怎么把序列重置为1
      

  4.   


    可以尝试修改序列ALTER SEQUENCE emp_sequence  
        INCREMENT BY 10  
        MAXVALUE 10000  
        CYCLE    -- 到10000后从头开始  
        NOCACHE ;