Я пытаюсь создать триггер, который выполняет ROLLBACK TRANSACTION, как только определенное значение будет достигнуто в таблице.Создание максимально допустимого триггера
Представьте, что студент библиотеки uni может иметь только 5 активных кредитов одновременно. Как я могу реализовать такой триггер?
Это то, что мы имеем до сих пор:
CREATE DEFINER = CURRENT_USER TRIGGER `bib_db`.`Customer_AFTER_UPDATE` AFTER UPDATE ON `Customer` FOR EACH ROW
if activeloans <5
AND Customertype = student
then
SIGNAL sqlstate '45001' set message_text = "You've reached your maximum ammount of loans";
ROLLBACK TRANSACTION
end if ;
end
Я мог бы быть далеко, но это, насколько я есть ... Кто-нибудь есть какие-нибудь идеи?
Спасибо за awnser! К сожалению, я все еще могу выполнить обновление в клиенте таблицы без появления сообщения об ошибке. Я сейчас использую heidiSQL, хотя я не вижу в этом проблемы ... что-нибудь еще, что я мог бы забыть? – Johan
** Я действительно получил его сейчас, хотя я не могу заставить работать ROLLBACK TRANSACTION. триггера, который работал = НАЧАТЬ если new.AktivaLan> 5 и new.Kundtyp = 'Student', затем SIGNAL SQLSTATE '20001' установлен message_text = "Вы достигли максимальную сумму кредитов"; \t end if; END Пытался добавить синтаксис ROLLBACK, но я получаю сообщение об ошибке: Ошибка SQL (1422): Явная или неявная фиксация не разрешена в хранимой функции или триггере. – Johan