2011-09-30 38 views
1

我有一個MySQL數據庫。當表中的字段更新時,我可以編寫一個函數或通過其他進程獲取另一個表中的字段以自動更新?MySQL數據庫函數減少其他表中的值1

ie,這就是我想要做的,如果表1字段的discount_code和折扣碼是123456,那麼在表2中我可以有times_code_can_be_used(從20開始)自動減1。

以前沒有做過,需要一些指導。

謝謝。

+1

你需要一個觸發這樣的行爲。 Se:http://dev.mysql.com/doc/refman/5.1/en/triggers.html –

+0

試試這個類似的問題開始:http://stackoverflow.com/questions/7404805/using-an-update- trigger-to-update-another-table –

+0

類似的是'AFTER UPDATE ON A ... FOR ROW BEGIN UPDATE TABLE B ...' –

回答

3

是的,你可以使用mysql trigger

例子做到這一點: -

delimiter | 

CREATE TRIGGER testref BEFORE INSERT ON test1 
    FOR EACH ROW BEGIN 
    INSERT INTO test2 SET a2 = NEW.a1; 
    DELETE FROM test3 WHERE a3 = NEW.a1; 
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1; 
    END; 
| 

delimiter ; 

注:觸發器支持包括與MySQL 5.0.2開始

+0

謝謝..現在看看..試圖找出如何改變我目前的更新納入.. – user718359

+0

有一個簡短的問題,你還在嗎? – user718359

+0

@ user718359:是的請拍​​ – Gowri

0

您可以使用trigger函數。如果更新或插入或刪除字段,可以將其設置爲針對特定表運行。在這個觸發器函數裏面,你可以使用你需要的任何邏輯來放置任何類型的sql,在你的例子中,只需從更新的字段獲取數據並使用它來更新另一個表中的字段。