Один триггер в denwer - MySQL
Формулировка задачи:
Здравствуйте. Прошу прощения заранее за вероятные глупости, и что отнимаю время.. Поиск не дал ничего ясного..
Если какого-нибудь гуру по sql не затруднит.. помогите, пожалуйста, составить триггер, который изменял бы строку в в одной таблице, при добавлении записи в другую..
Методички у нас очень жестокие..точнее их нет, сказали ищите в интернете.. А разновидности синтаксиса от версии к версии уже мозолят глаза..
Пока удалось создать триггер который изменяет столбец цена, например, 300, как у меня..
В
общем.. задание выглядит так "Для размещения вакансии фирма должна внести оплату". Имеется таблицаfirm
(фирмы) 12шт иoplata_raz
(оплата размещения вакансии) 48шт. Скриншоты прилагаю..num_chet
(тобишь, так сказать, деньги фирмы) у всех фирм сразу =/ Никак не могу допереть где и чего надо исправить/добавить..CREATE TRIGGER `trigger1` BEFORE INSERT ON `oplata_raz` FOR each ROW UPDATE `firm` SET `num_chet`=`num_chet`-300
Решение задачи: «Один триггер в denwer»
textual
Листинг программы
delimiter // CREATE TRIGGER upd_check BEFORE INSERT ON oplata_raz FOR EACH ROW BEGIN IF (SELECT num_chet FROM firm WHERE id_firm=NEW.id_firm) > 300 THEN UPDATE firm SET num_chet=num_chet-300 WHERE id_firm=NEW.id_firm; ELSE DELETE FROM oplata_raz WHERE id_vks=NEW.id_vks; END IF; END;// delimiter ;
Объяснение кода листинга программы
- Установка триггера перед операцией вставки на таблицу
oplata_raz
. - Проверка условия в каждом из строк перед вставкой.
- Если условие не выполняется, то вставка не производится и выполняется операция удаления.
- Если условие выполняется, то производится обновление записи в таблице
firm
. - Значение переменной
num_chet
в таблицеfirm
проверяется на превышение 300. - Если значение переменной
num_chet
превышает 300, то оно уменьшается на 300. - Если значение переменной
num_chet
не превышает 300, то выполняется операция удаления записи из таблицыoplata_raz
. - Значение переменной
id_firm
в таблицеfirm
используется для связи с таблицейoplata_raz
. - Значение переменной
id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_vks
в таблицеoplata_raz
используется для связи с таблицейfirm
. - Значение переменной
NEW.id_firm
в таблицеoplata_raz
используется для связи с таблицейfirm
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д