[英]MySQL trigger to update other table
我有2張桌子:
表1 = SAMPLE_TABLE
表2 = RESULT_TABLE(建議觸發器)
我想在RESULT表中使用一個觸發器,當向其中插入新記錄時,該觸發器將更新SAMPLE表中稱為“ status” =“ complete”的字段。 SAMPLE中要更新的字段'status'與RESULT的關系是:
表1 = SAMPLE_TABLE('client_sampleID')
=
表2 = RESULT_TABLE('sampleID')
這是建議的觸發器
CREATE DEFINER = `user`@`%` TRIGGER `database`.`RESULT_TABLE_BEFORE_INSERT`
AFTER INSERT ON `RESULT_TABLE` FOR EACH ROW
BEGIN
UPDATE SAMPLE_TABLE
SET status = 'complete'
WHERE SAMPLE_TABLE.client_sampleID = RESULT_TABLE.sampleID;
END
我的問題:
上面的觸發器可以嗎?
每個“ sampleID”有100+個“ client_sampleID”(全部相同,以批次形式輸入)。 是否有更有效的方式設置“狀態”,使其僅在遇到第一個實例后才發生?
你很親密 您只需要在觸發器中使用new
:
CREATE DEFINER = `user`@`%` TRIGGER `database`.`RESULT_TABLE_BEFORE_INSERT`
AFTER INSERT ON `RESULT_TABLE` FOR EACH ROW
BEGIN
UPDATE SAMPLE_TABLE st
SET status = 'complete'
WHERE st.client_sampleID = new.sampleID;
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.