通过序列和触发器,实现插入时主键的自动递增
/**
* 先执行创建序列的语句,再执行创建触发器的语句
*/
create sequence SM_AFTERSALE_EBOARD_seq //SM_AFTERSALE_EBOARD_seq 为序列名称
increment by 1 //每次增加1
start with 200 //从200开始
nomaxvalue //无最大值
nocache; //不循环
create or replace TRIGGER TRIG_SM_AFTERSALE_EBOARD //TRIG_SM_AFTERSALE_EBOARD 为触发器名
before insert on SM_AFTERSALE_EBOARD //SM_AFTERSALE_EBOARD 为表名
for each row
begin
select SM_AFTERSALE_EBOARD_seq.nextval into :new.EBOARD_ID from dual; //EBOARD_ID 为主键名
end;
注意:orcale 的序列并不是专属于某一个表的,我们可以通过以下命令查看当前用户创建的所有序列
select * from user_sequences;

sqldeveloper 也可以直接在这里右键,新建序列

触发器是属于表的

本文介绍了如何在Oracle数据库中通过创建序列和触发器来实现在插入数据时主键自动递增的功能。首先创建一个名为SM_AFTERSALE_EBOARD_seq的序列,设置初始值为200并按1递增,无最大值且不缓存。接着创建名为TRIG_SM_AFTERSALE_EBOARD的触发器,在SM_AFTERSALE_EBOARD表的插入操作前,将序列的下一个值赋给主键字段EBOARD_ID。此外,还提供了查看当前用户所有序列的SQL查询,并提示可以在SQL Developer中直接新建序列。
1166

被折叠的 条评论
为什么被折叠?



