向表中插入数据的时候每次自增数据的ID,前端无需传ID的值,后端也无需生成
(Oracle用 <序列+触发器>的方式使数据表的一列或多列实现自增)
1、为表创建序列:
create sequence ACCOUNT_SEQUENCE
minvalue 1
maxvalue 9999 --最大值
start with 1 --从1开始计数
increment by 1 -- 每次加几个
nocache; -- 一直累加,不循环
2、创建触发器:
create or replace
trigger Account_trigger --创建的触发器名
before insert on ACCOUNT --ACCOUNT是表名
for each row
declare
nextid number;
begin
IF :new.ID IS NULL or :new.ID=0 THEN --ID是表的主键ID
select ACCOUNT_SEQUENCE.nextval --ACCOUNT_SEQUENCE是创建的序列
into nextid
from sys.dual;
:new.ID:=nextid; --ID是表的主键ID
end if;
end Account_trigger; --创建的触发器名
如果实体类中给ID加上了注解:@TableId(type = IdType.AUTO) (mybatisplus依赖的注解)
那么数据库每次自增的ID以1自增
如果没有注解则是生成一串数字