Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте!
Помогите, пожалуйста, доработать триггер, который должен отслеживать добавления товара в корзину.
В таблицы products есть поле count (количество товара), и в корзине (cart) есть такое же поле - count_product.
Нужно чтоб триггер проверял, что бы count_product в таблицы cart не было больше count таблицы products.
Как это можно проверять?
Неактивен
Неактивен
Подскажите, пожалуйста, что делает new? Получает значения определенного поля последней добавленной или измененной записи в таблице?
Неактивен
NEW.col_name обращается к столбцу новой строки, которая будет вставлена, или же к существующей строке после того, как она модифицируется.
Неактивен
Почему то ошибка:
SQL Error [1415] [0A000]: Not allowed to return a result set from a trigger
Неактивен
Непонятно логика - зачем вызывается ROLL_BACK, при том, что там просто селект внутри?
Опишите, чего Вы хотите?
Формальный ответ - в триггерах, если делаете select, то делайте через select into
https://dev.mysql.com/doc/refman/8.0/en … -into.html
Неактивен
deadka написал:
Непонятно логика - зачем вызывается ROLL_BACK, при том, что там просто селект внутри?
Опишите, чего Вы хотите?
...
Вообще задача такая: Если пользователь добавил в корзину большее количество товара, чем есть на самом дели, то делать отмену действий. Вместо селекта я хотел сделать ROLLBACK;
Неактивен
Неактивен
Добавлю, что это плохая практика - триггерами такие ошибки ловить. Лучше на стороне приложения делать.
Неактивен
deadka написал:
Добавлю, что это плохая практика - триггерами такие ошибки ловить. Лучше на стороне приложения делать.
Да, мне нужно для ДЗ пару триггеров придумать, но ничего не получается придумать.
Неактивен
Так бы сразу и сказали :-).
Сделайте триггер, который в случае покупки нового товара вставит запись в таблицу с логами - что такой-то человек тогда-то купил то-то.
Неактивен