«Не удается обновить таблицу в сохраненной функции / триггере» с помощью триггера «УДАЛИТЬ ПОСЛЕ ОБНОВЛЕНИЯ при условии» - PullRequest
1 голос
/ 06 января 2020

Мой текущий код для триггера:

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...