大家都知道吧,这很坑,尤其是用惯了mysql里的自增字段设置,结果oracle里面没有的。oh,no
我用的是12c版本的,它有一个新特性,可以这样设置自增序列,在创建表是,把id设置为自增序列
create table t ( id number generated by default as identity (start with 1 increment by 1), name varchar2(20), password varchar2(20), Constraint Pk_T Primary Key ( Id ) ); |
很忧桑的是同伴用的是11g的,那只能通过序列+触发器来实现了;
创建表
-create table t ( id number, name varchar2(20), password varchar2(20), Constraint Pk_T Primary Key ( Id ) ); CREATE SEQUENCE seq_t----------------/*序列名称*/ INCREMENT BY 1 ----------------/*自增1*/ START WITH 1 ----------------/*从1开始*/ NOMAXVALUE ----------------/*没有最大值*/ NOCYCLE NOCACHE; CREATE TRIGGER tri_t BEFORE------------------/*创建触发器*/ INSERT ON t FOR EACH ROW WHEN (new.id is null) begin select seq_t.nextval into: new.id from dual; end; |