2017-04-06 31 views
1

我有三列第1列第2列第3列(總計)。我想在每次更新查詢後將第1列和第2列的總和放到第3列.....注意我使用的是代碼點火器。如何更新列1然後總列自動更新自己,我該怎麼做。如何在每次更新後自動累加兩列並插入總列

+0

您可以使用觸發器來實現這一目標。 – dsharew

+0

如何使用觸發器? –

+0

您可以輕鬆修改您的更新命令來輕鬆完成此操作。 UPDATE table1 SET COL1 = X,COL3 = X + COL2 WHERE ........。 X是您的輸入值。當你更新COL1時,相同的查詢也會更新COL3。 – blokeish

回答

1

嘗試這樣的:

DELIMITER $$ 
CREATE TRIGGER updtrigger AFTER UPDATE ON mytable 
FOR EACH ROW 
BEGIN 
    IF NEW.col1 <> OLD.col1 OR NEW.col2 <> OLD.col2 THEN 
     SET NEW.col3 = NEW.col1 + New.col2;  
    END IF; 
END $$ 

這是一個非常好的tutorial

AFTER UPDATE觸發器意味着MySQL將在執行UPDATE操作的 之後觸發此觸發器。

+0

你寫了BEFORE AFTER之後,它會在查詢之前和之後執行嗎?再加上你寫了FOR EACH ROW,但是我想執行它只有那一列正在更新的那一行..請編輯我所要求的...謝謝 –

+0

是啊對不起,我刪除了BEFORE;您需要FOR EACH ROW,因爲您可以在單個查詢中更新多行。 – dsharew

+0

好的,現在感謝我的查詢發生在這個觸發代碼中的最後一件事 –

0

爲什麼不更新數據庫而不是創建觸發器。加上你在插入後創建了觸發器,它應該在之前。但你真的不應該做這樣的說法

0

試試這個代碼:

DELIMITER $$ 

CREATE 
    TRIGGER `db_name`.`trigger_name` AFTER UPDATE 
    ON `db_name`.`table_name` 
    FOR EACH ROW BEGIN 
    UPDATE 
     `table_name` 
    SET 
     `column3` = `column1` + `column2`; 
    END$$ 
DELIMITER ; 
相關問題