Создание trigger в musql - MySQL
Формулировка задачи:
Здравствуйте!
Столкнулась со следующей проблемой: есть trigger ins, который при добавлении записи в таблицу shopcart(корзина покупателя книг(id_user, id_book, amount)), должен вычесть из таблицы books из общего числа книг(full_amount) число купленных(amount). Нужна дополнительная проверка на отрицательность full_amount (-10 книг быть не может ).
Помогите решить пожалуйста!
CREATE TRIGGER ins AFTER INSERT ON shopcart FOR EACH ROW UPDATE books SET books.full_amount=books.full_amount-NEW.amount WHERE books.id = new.book_id;
Решение задачи: «Создание trigger в musql»
textual
Листинг программы
CREATE TRIGGER ins BEFORE INSERT ON shopcart FOR EACH ROW BEGIN IF (books.full_amount-new.amount > -1) THEN UPDATE books SET books.full_amount=books.full_amount-NEW.amount WHERE books.id = new.book_id; END IF; END
Объяснение кода листинга программы
- Создание триггера с именем
ins
- Триггер срабатывает перед вставкой новой записи в таблицу
shopcart
- Условие
IF
проверяет, что количество книг в таблицеbooks
не станет отрицательным при вставке новой записи - Если условие выполняется, то выполняется обновление записи в таблице
books
на количество вставляемой книги минус количество книг, которые уже есть в таблицеbooks
- Обновление происходит только для записей, где id книги совпадает с id вставляемой книги
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д