所做
第一個錯誤是使用「 trigger_time = AFTER「當您嘗試更新該行時。根據mysql手冊:
在BEFORE觸發器中,如果您具有UPDATE特權,您也可以使用SET NEW.col_name = value更改其值。這意味着您可以使用觸發器修改要插入新行或用於更新行的值。
詳情從這裏檢查手冊: http://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html
我已經創建了兩個表,插入數據並寫入觸發以下的信息:
CREATE TABLE:
表1 :create table sells (beer_name varchar(200),beer_price int(20));
表2:create table ripo_off_bar (beer_name varchar(200));
INSERT:
Insert into sells values("Root Beer", 2);
TRIGGER:
DELIMITER $$
CREATE TRIGGER price_update BEFORE UPDATE ON sells
FOR EACH ROW
BEGIN
IF(NEW.beer_price > OLD.beer_price + 1) THEN
INSERT INTO ripo_off_bar (beer_name) VALUES (NEW.beer_name);
END IF;
END;$$
UPDATE:
update sells SET beer_price=8 where beer_name="Root Beer";
後,如果您VIEW的ripo_off_bar表你會看到有已經加入你的更新beer_name信息:
VIEW:
SELECT * FROM ripo_off_bar;
我加入的也編碼截圖。希望這些能幫助你完成你的任務。快樂編碼!