Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > trigger in MySQL


Автор: integral 1.7.2008, 12:49
могу я как-то поработать со значениями полей таблицы в теле триггера? например, есть триггер срабатывающий перед вставкой. необходимо сравинить некоторые поля те что вставляются и те что есть. как-то такое можно сделать?

Автор: skyboy 1.7.2008, 12:59
при помощи запросов в теле триггера.

Автор: integral 1.7.2008, 14:08
т.е.? ну допустим существующие я так вытяну, а те что хочу вставить?
допустим есть таблица типа fruits(name varchar(250), amount int, pricePerKg float)
и я к ней пишу триггер:
create trigger SuperTriggerMy before update on fruits
for each row
begin
  /* если новое значение количества фруктов больше текущего на 10%, то цена уменшается на 1% (т.е. новое значение не переданное 100, а    99) */
end;

буду очень презнателен за объяснения

Автор: Feldmarschall 1.7.2008, 14:18
оффтопик рекомендация.
для цены надо всегда использовать decimal, а не float
да и и вообще всегда, кроме случаев, когда нужен именно float

Автор: skyboy 1.7.2008, 15:00
в http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html по триггерам обрати внимание на переменные NEW и OLD.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)