2013-10-11 89 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; 
相關問題