2013-10-11 49 views
0

考虑2个表:复制记录当字段值变化的另一个表

-- Table apples 
id | randomstring | type TINYINT(1) DEFAULT 0 

-- Table pears 
id | randomstring | is_complete TINYINT(1) DEFAULT 0 

就像PHP的事件,是有可能发现的是,当现场pears.is_complete从0时,MySQL将自动更新为1将pears.randomstring的内容复制到apples.randomstring,并将apples.type的值设置为1?

如果这在MySQL中不可行,是否可以在PHP中完成当字段的值发生变化时调用php文件?

+4

查找“触发器” MySQL的文档。 – Barmar

+1

http://dev.mysql.com/doc/refman/5.5/en/triggers.html – Barmar

回答

1

如果你运行MySQL 5.0.2或更高版本,那么使用触发器可能是你最好的选择。只要创建,将运行在is_complete值更改为1

触发代码的更新触发:

DELIMITER $$ 

CREATE TRIGGER `{database name}`.`{name of trigger}` 
    AFTER UPDATE ON `{database name}`.`pears` 
FOR EACH ROW BEGIN 
    IF(NEW.is_complete = 1) THEN 
    # Add your random string to the apple table code 
    INSERT INTO `{database name}`.`apples` (randomstring, type) 
    VALUES (NEW.randomstring, 1); 
    END IF; 
END $$ 

DELIMITER; 
相关问题