2013-08-07 58 views
2

如何使用觸發器將列值更新爲舊值加上其他表的新值如果該值已有條目,則使用觸發器? 我想要的是類似下面的東西。注意粗體和斜體部分。如何將列值更新爲舊值加上使用觸發器的其他表中的新值?

DELIMITER$$ 
CREATE TRIGGER trigger_name AFTER INSERT 
ON table_one FOR EACH ROW 
BEGIN 
    INSERT INTO table_two(clmn_id, clmn_one) VALUES(NEW.clmn_id_fk,NEW.clmn_a) 
    ON DUPLICATE KEY UPDATE clmn_one = VALUES(clmn_one + NEW.clmn_a); 
END$$ 
DELIMITER;

回答

3

嘗試從對重複KEY取出關鍵字值:

DELIMITER$$ 
CREATE TRIGGER trigger_name AFTER INSERT 
ON table_one FOR EACH ROW 
BEGIN 
    INSERT INTO table_two(clmn_id, clmn_one) VALUES(NEW.clmn_id_fk,NEW.clmn_a) 
    ON DUPLICATE KEY UPDATE fine_amount = clmn_one + NEW.clmn_a; 
END$$ 
DELIMITER; 
+1

你1分鐘打我!請參閱http://sqlfiddle.com/#!2/2321f6/1 –

+0

對於更新它可以正常工作,但現在它不適用於插入新值。 – MikeGte

+0

你遇到了什麼問題? –

0

看起來你首先需要一個select語句來檢查它是否已經存在。如果是這樣,請將變量設置爲當前值,然後運行組合舊值(變量)和新值的更新。如果該記錄尚不存在,請使用當前值運行插入語句。

相關問題