我是靠谱客的博主 热心小天鹅,这篇文章主要介绍mysql 触发器生成序列号_使用触发器订单序列号生成,现在分享给大家,希望可以做个参考。

1:业务表

create table A_TEST_TRIGGER

(

ID VARCHAR2(255 CHAR) not null,

SN VARCHAR2(255 CHAR)

)

2:保存当前序列号的表:

create table SEQUENCE_GENERATOR

(

KEY         VARCHAR2(20) not null,

CURRENT_SEQ NUMBER(20)

)

3:创建触发器

CREATE OR REPLACE TRIGGER test_sn_generator

BEFORE INSERT ON learn.a_test_trigger

FOR EACH ROW

DECLARE

sn_no VARCHAR2(1000);

BEGIN

select current_seq||'aaaaa' INTO :NEW.SN FROM sequence_generator for update;

update sequence_generator set current_seq = current_seq +1 where key = '51080201IA';

END;

4:这样当业务表中插入数据

insert into a_test_trigger(id, sn) values(1, 'a');

时根据sequence_generator表生成序列号

5:注意在查询sequence_generator 时使用了 悲观锁

6:这样就可以根据一定的业务规则生成序列号了。

因为触发器与当前session在同一个事务中,所以与其他的session隔离了。

最后

以上就是热心小天鹅最近收集整理的关于mysql 触发器生成序列号_使用触发器订单序列号生成的全部内容,更多相关mysql内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部