mysql触发器查询别的表_Oracle触发器查询统计本表
Oracle觸發(fā)器查詢統(tǒng)計(jì)本表,這次由于項(xiàng)目需要,實(shí)際動(dòng)手演練了一把,達(dá)到了需要的效果,大致是插入數(shù)據(jù)后,統(tǒng)計(jì)表內(nèi)和當(dāng)前插入數(shù)
Oracle觸發(fā)器查詢統(tǒng)計(jì)本表
這次由于項(xiàng)目需要,實(shí)際動(dòng)手演練了一把,達(dá)到了需要的效果,大致是插入數(shù)據(jù)后,,統(tǒng)計(jì)表內(nèi)和當(dāng)前插入數(shù)據(jù)時(shí)間相同的個(gè)數(shù)。
采用行級(jí)觸發(fā)器+語(yǔ)句級(jí)觸發(fā)器。
--包
CREATE OR REPLACE PACKAGE UPDATECASE AS
TYPE T_DATE IS TABLE OF date INDEX BY BINARY_INTEGER;
V_UPDATETIME T_DATE;
V_ROW BINARY_INTEGER := 0;
end;
--行級(jí)觸發(fā)器
create or replace trigger Tri_student_row
after insert or update or delete
on student
FOR EACH ROW
BEGIN
updatecase.V_ROW := updatecase.V_ROW + 1;
if DELETING then
updatecase.V_UPDATETIME(updatecase.V_ROW) := :OLD.CREATETIME;
else
updatecase.V_UPDATETIME(updatecase.V_ROW) := :NEW.CREATETIME;
end if;
END;
--語(yǔ)句級(jí)觸發(fā)器
create or replace trigger Tri_student
after insert or update or delete on student
declare
studentcount number(38,5);
BEGIN
FOR V_LOOP IN 1 .. UPDATECASE.V_ROW LOOP
select count(*)
into studentcount from student t
where t.createtime = UPDATECASE.V_UPDATETIME(V_LOOP);
insert into personcount(comedate,count)values(UPDATECASE.V_UPDATETIME(V_LOOP),studentcount);
end loop;
UPDATECASE.V_ROW := 0;
END;
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的mysql触发器查询别的表_Oracle触发器查询统计本表的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql注入绕过单引号_SQL注入-绕
- 下一篇: 一套mysql_mysql 命令一套