考虑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更新为1时,MySQL自动将pears.randomstring的内容复制到apples.randomstring并将apples.type的值设置为1?

如果这在MySQL中是不可能的,是否可以在PHP中完成,当字段的值更改时,将调用php文件?

最佳答案

如果您运行的是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;

关于php - 字段值更改时,将记录复制到另一个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19323605/

10-09 19:40