Oracle與Mysql中的觸發(fā)器(Trigger)對(duì)比

Oracle觸發(fā)器 Demo(通過觸發(fā)器結(jié)合創(chuàng)建序列(sequence)的方式實(shí)現(xiàn)字段遞增)

create table if not EXISTS hpwf_order_col_default(
    id int not null,
    fieldName int not null,
    fieldColumn varchar(1000) not null
)
;
create sequence hpwf_order_col_default_seq increment by 1 start with 1 nomaxvalue nocycle cache 10
;
create or replace trigger hpwf_order_col_default_trigger
before insert on hpwf_order_col_default for each row
begin
<!--這里通過sequence.nextval方法來將sequence 的next value賦值給最新插入的id-->
select hpwf_order_col_default_seq.nextval into :new.id from dual;
end;
;
create table if not EXISTS hpwf_order_col_use(
    id int not null,
    eid int null,
    tabid int null,
    colid int null,
    orderNum int null,
    orderType int null
)
;
<!--創(chuàng)建sequence-->
create sequence hpwf_order_col_use_seq increment by 1 start with 1 nomaxvalue nocycle cache 10
;
create or replace trigger hpwf_order_col_use_trigger
before insert on hpwf_order_col_use for each row
begin
select max(id)+1 into :new.id from hpwf_order_col_use;
end;
;

Mysql 觸發(fā)器(Trigger)Demo(業(yè)務(wù)等同于Oracle)

create table if not EXISTS hpwf_order_col_use(
    id int not null,
    eid int null,
    tabid int null,
    colid int null,
    orderNum int null,
    orderType int null
)
;
DROP TRIGGER IF EXISTS hpwf_order_col_use_trigger;
DELIMITER //  
create trigger hpwf_order_col_use_trigger
before insert on hpwf_order_col_use for each row
begin
set @num=(select count(id) from hpwf_order_col_use);
if @num=0 THEN
set new.id=1;
ELSE 
set @newId=(select MAX(id)+1 FROM hpwf_order_col_use);
set new.id= @newId; 
end if;
end
// 
DELIMITER ;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容