Первая ошибка, которую вы сделали, что использует " trigger_time = AFTER ", когда вы пытаетесь обновить строку. Согласно инструкции mysql:
В триггере BEFORE вы также можете изменить его значение с помощью SET NEW.col_name = value, если у вас есть привилегия UPDATE. Это означает, что вы можете использовать триггер для изменения значений, которые нужно вставить в новую строку или использовать для обновления строки. (Such a SET statement has no effect in an AFTER trigger because the row change will have already occurred.)
Для получения дополнительной информации обратитесь к руководству здесь: 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 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 информацию:
ВИД:
SELECT * FROM ripo_off_bar;
Я добавил скриншот кодируются также. Надеюсь, это поможет вам выполнить свою задачу. Счастливое кодирование !!!