MySQL-Trigger - Das Ändern des Feldes Feld1 der Tabelle TabelleA wirkt sich auf das Feld Feld2 der Tabelle TabelleB aus

MySQL-Trigger

Manchmal wirkt sich die Änderung eines Felds auf die Daten eines anderen Felds aus. In diesem Fall muss mehr Code in Java geschrieben werden. Dies ist sehr einfach, wenn Sie den mit MySQL gelieferten Trigger verwenden.

Fall: Nachdem der Forderungsbetrag in der Forderungsdetailtabelle geändert wurde, ändern Sie das Bestätigungsfeld in der Forderungsrechnungstabelle in „Unbestätigt“.

SQL-Implementierung:

-- 创建一个触发器
create trigger fin_receivable_bill_update_trigger after update on fin_receivable for each row
begin
		-- 定义变量 取自fin_receivable 表里面的字段
        DECLARE related_id bigint;
        -- 判断新旧值是否相等
        if (OLD.un_received_amount != NEW.un_received_amount) then
        	-- 修改应收账单表的确认字段
            update fin_receivable_bill set is_confirm_bill = 1002
                where is_deleted = 0 and id in (
                select bill_id from fin_receivable_bill_item 
                where is_deleted = 0 and receivable_id = related_id
                );
end;

erklären:

  1. Trigger erstellen: Trigger erstellen Triggername: fin_receivable_bill_update_trigger
  2. Nachdem die Zieltabelle einen Änderungsvorgang durchgeführt hat: nach der Aktualisierung von fin_receivable
  3. Bestimmen Sie, ob der alte und der neue Wert des Feldes unterschiedlich sind: if (OLD.un_received_amount != NEW.un_received_amount)
  4. Variablen definieren: DECLARE related_id bigint;
  5. 执行具体的业务逻辑: update fin_receivable_bill set is_confirm_bill = 1002 where is_deleted = 0 and id in ( select bill_id from fin_receivable_bill_item where is_deleted = 0 and dependable_id = connected_id);

Supongo que te gusta

Origin blog.csdn.net/qq_42547733/article/details/132879126
Recomendado
Clasificación