2011-09-30 106 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,在你的例子中,只需从更新的字段获取数据并使用它来更新另一个表中的字段。