注:觸發器中不能呼叫儲存過程,觸發器功能應盡量簡單
use d_database_name;-- 切換到資料庫
set names 'utf8';
-- drop if exists when update can use
drop trigger if exists tr_update_bind_sno;
delimiter //
create trigger tr_update_bind_sno
after update on t_order_19
foreach row
begin
-- 使用者註冊手機號
declare v_cellphone varchar(16);
-- old記錄更新前的狀態,new代表更新後的資料
ifold.c_bind_sno<>new.c_bind_sno
&& length(old.c_bank_card)>0
then
-- 獲取使用者註冊手機號
select c_cellphone into v_cellphone from t_user
where c_user_id=c_user_id;
-- 更新t_channel_account的綁卡標示和預留銀行手機號
update t_channel_account
set c_bind_number=old.c_bind_sno
,c_bank_cellphone=old.c_bank_cellphone
where c_user_id=old.c_user_id;
endif;end
//delimiter ;
my sql 觸發器 mysql建立觸發器
首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...
mysql建立觸發器
很多時候為了提高查詢效率,我們會在一些表當中增加冗餘字段,例如在客戶表裡面儲存用油卡號,但是如果客戶掛失原卡,申請了新的油卡,冗餘欄位就不正確了,這時候應該怎麼辦呢?我們可以建立乙個觸發器,當客戶插入新的油卡資料的時候同時更新客戶資料。delimiter create trigger update ...
mysql 建立觸發器
參考 建立觸發器的語法如下 create trigger trigger name trigger time trigger event on tbl name for each row trigger stmt trigger time 是觸發器的觸發時間,可以是before 或者after,be...