oracle数据库
连接数据库,要求连接的用户有create object的功能。我这里以SCOTT用户为例。
创建sequence的语法!create sequence seq_namenomaxvaluenominvaluenocachenocycleincrement by 1start with by 1
其中seq_name是序列的名字。一般是seq开头,而后后面接table名或者table名的缩写。我个人是喜欢这样子的,当然你可以写成其他的。
nomaxvalue----不设置最大值nominvalue----不设置最小值nocycle--------序列不重复nocache-------在没submit之前有很多序列在内存中的话,而且这个时候DB挂了那么在内存中的序列就用掉了。当然你可以设置cache 10或者其他数字。
increment by 1-----每次增长1,当然你可以设置成其他的,一般增长比较符合逻辑。start with 1---------设置这个序列的初始值。这里的初始值是1。
好了概念都讲完之后就可以开始实践了。这里有一个例子:一个表里面一般都要有一个ID,而这个ID在oracle里面是不能自动设置增量的。必须用sequence来实现。代码如下:CREATE TABLE test_tab(id NUMBER,name VARCHAR2(30))
要实现ID自增量的功能可以用trigger来实现。trigger的代码如下:CREATE TRIGGER tr1_test_tabBEFORE INSERT ON test_tabFOR EACH ROWBEGINSELECT seq_name.NEXTVAL INTO :NEW.id FROM dual;END;这里子就实现了ID自增的功能了。
sequence配合trigger使用