2013-03-20 2 views
1

Привет, ребята, я пытаюсь сделать курок, чтобы, если цена пива увеличилась более чем на 1 доллар, я добавлю название панели в таблицу RIPOFFBAR.Trigger FOR EACH ROW

CREATE TRIGGER PriceTrig 
AFTER UPDATE ON Sells 
FOR EACH ROW 
BEGIN 
IF (NEW.price > OLD.price + 1.00) 
THEN 
INSERT INTO RipoffBars(bar) 
VALUES(NEW.bar); 
END IF; 
END; 

и как вы можете видеть, что я используется для каждой строки начинаются с IF заявления Но по какой-то причине не работает любая помощь была бы оценена

ответ

3

Первая ошибка, которую вы сделали, что использует " 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; 

Я добавил скриншот кодируются также. Надеюсь, это поможет вам выполнить свою задачу. Счастливое кодирование !!!

Trigger Creation & Updated value