簡體   English   中英

MySQL觸發器更新其他表

[英]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

我的問題:

  1. 上面的觸發器可以嗎?

  2. 每個“ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM