簡體   English   中英

字段值更改時將記錄復制到另一個表

[英]Copy record to another table when a field value changes

考慮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的內容pears.randomstringapples.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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM