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

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

4

1 回答 1

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;
于 2013-10-11T17:48:30.343 回答