Oracle不能像mysql那样直接在表中创建主键自增,但是可以创建序列自增,当sql执行插入语句时可以调用创建好的自增序列,模板为
SELECT 序列名.NEXTVAL as 字段名 FROM DUAL
也可以使用触发器将自增序列整合到表中实现自动自增,执行语句为
create or replace trigger tr_insert_good
before insert on goods for each row
begin
select seq_goods_id.nextval
into :new.id
from dual;
end;
当需要更改序列的起始值是不能直接使用
alter sequence 序列名 start with 100;
这样会报错
ORA-02283: 无法变更启动序列号
但是可以使用
alter sequence 序列名 increment by 90;
来修改每次自增值,然后执行一次插入,将自增值增到想要的数字,然后执行
alter sequence 序列名 increment by 1;语句将每次自增值改回1就行;