乙個簡單的觸發器

2021-10-23 16:20:10 字數 1173 閱讀 8098

觸發器是與表有關的資料庫物件,在滿足定義條件時觸發,並執行觸發器中定義的語句集合。

觸發器的特性:

1、有begin end體,begin end;之間的語句可以寫的簡單或者複雜

2、什麼條件會觸發:i、d、u

3、什麼時候觸發:在增刪改前或者後

4、觸發頻率:針對每一行執行

5、觸發器定義在表上,附著在表上。

也就是由事件來觸發某個操作,事件包括insert語句,update語句和delete語句;可以協助應用在資料庫端確保資料的完整性。

但是觸發器很耗效能,能不用就不用

下面是乙個簡答觸發器

create trigger:建立觸發器

insert_rp_reporting :觸發器的名稱

after  在操作之後,同理 before 是在操作之前

rim_rp_reporting_informant  首先操作的表名

update rim_rp_reporting 更新表 rim_rp_reporting  注意不能更新自己也就是說不能更新首先操作的表。相當於同時執行了插入和更新,mysql語法不通過。

all_informant = 後面括號裡的是查詢的語句,有時直接可以賦值,這裡複雜了一些

new.reporting_id 前端出入的引數,注意要加上new.

create trigger insert_rp_reporting after insert on rim_rp_reporting_informant for each row

begin

update rim_rp_reporting

set all_informant = (

select

allname

from

(select

group_concat(a.a0101) as allname

from

rim_rp_reporting_informant a

where

a.is_deleted = 0

and reporting_id = new.reporting_id

group by

a.reporting_id

) as a

)where

reporting_id = new.reporting_id;

end;

乙個簡單的觸發器 Demo

背景 常見的表會有乙個updatedate欄位,用來標示表中資料最近一次被更新的時間 該功能可由程式實現 不再贅述 也可以由觸發器實現 use test go object trigger dbo autodatemodified script date 04 12 2010 17 37 43 se...

乙個簡單的ORACLE觸發器

開發是用到的乙個觸發器,現學現賣,功能實現了,留此記錄以便日後查閱。create or replace trigger trigger oa mail user after delete or insert or update on oa mail user for each row begin i...

乙個觸發器

設計乙個觸發器,當刪除employees中的某個雇員時,刪除orders表中的與這個雇員 相關的一切記錄。第一步 建立儲存過程 drop trigger employees delete gocreate trigger employees delete on employees instead o...