При срабатывании триггера ошибка: "Can't update table in stored function/trigger because it is already used by statement"

Написал простенький триггер до вставки в таблицу (на обновление записи):

DELIMITER //
CREATE TRIGGER update_same_product
BEFORE INSERT ON `list_orders` 
FOR EACH ROW 
BEGIN
    DECLARE num_prod int;
    DECLARE id_conf int;
    DECLARE list_id int;
    DECLARE checker bool;
    SET num_prod = new.num_of_prod;
    SET id_conf = new.id_con;
    SET checker = (SELECT EXISTS(SELECT id_con FROM list_orders WHERE id_con = id_conf));
    if checker = 1 THEN
        SET list_id = (SELECT id_lo FROM list_orders WHERE id_con = id_conf);
        UPDATE list_orders SET num_of_prod = num_of_prod + num_prod WHERE id_lo = list_id;
    end if;
END //

При добавлении в таблицу новой записи: «#1442 - Can't update table 'list_orders' in stored function/trigger because it is already used by statement which invoked this stored function/trigger»

Где-то подводный камень. Прошу помочь.

p.s. - set new.num_of_prod не подходит, так как мне необходимо поменять запись не новой строки, а уже существующей


Ответы (0 шт):