最近写一个简单的功能,根据以往的是身份证被设置为唯一标识,但也不是所有的都是如此,假如表里有id的情况下,你想把它设为主键并自增该怎么样呢,oracle中,设置一个序列并且创建一个触发器就可以了。
--设置主键以及主键自增长--
--如果是对于已经建好的表,想增加主键约束,则类似语法:alter table test add constraint pk_id primary key(id);
--主键自增1创建序列--
create sequence SEQ_TEST
minvalue 1 --最小值
nomaxvalue --不设置最大值
start with 1 --从1开始计数
increment by 1 --每次加1个
nocycle --一直累加,不循环
nocache; --不建缓冲区
--触发器--
CREATE OR REPLACE TRIGGER tg_test
BEFORE INSERT ON motorman FOR EACH ROW WHEN (new.driverid is null)
begin
select seq_test.nextval into:new.driverid from dual;
end;
select * from motorman ;
insert into motorman(driverid,sex) values(6,'男')
insert into motorman (drivername,sex)values('小滴','女');
ok