Мой текущий код для триггера:
DELIMITER $$
CREATE TRIGGER checkStock
AFTER UPDATE ON product_size
FOR EACH ROW
BEGIN
IF new.stock < 1 THEN
DELETE FROM product_size WHERE Product_ID = old.Product_ID AND Size_ID = old.Size_ID;
END IF;
END$$
DELIMITER ;
(таблица product_size имеет три столбца: Product_ID, Size_ID и stock)
Я пытаюсь сделать это так что когда кто-то покупает товар, а его запас становится меньше 1, товар должен быть удален. Но если я попробую простой оператор Update, например:
UPDATE product_size SET stock = 0 WHERE Size_ID = 0 AND Product_ID = 9
, я получаю эту ошибку:
Невозможно обновить таблицу 'product_size' в хранимой функции / триггере, потому что она уже используется оператором, который вызвал эту сохраненную функцию / триггер.
Кто-нибудь знает, что я мог бы изменить в операторе, чтобы он работал? Я попытался найти его, но не смог найти решение для этого триггера DELETE AFTER UPDATE.