Mysql после вставки триггера дает ошибку - PullRequest
0 голосов
/ 08 июня 2019

Я написал ниже после триггера вставки, и он не дал мне никакой ошибки.Но всякий раз, когда я пытаюсь вставить данные в sept18.test, я получаю сообщение об ошибке ниже

Код ошибки: 1442. Не удается обновить таблицу 'test' в сохраненной функции / триггере, поскольку она уже используетсяоператор, который вызвал эту сохраненную функцию / триггер.0,000 сек

Может кто-нибудь, пожалуйста, помогите мне с этой ошибкой.Спасибо в аванс.

-- SELECT * FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME =  'TR_ORDERS_INS'
DROP TRIGGER IF EXISTS TR_ORDERS_INS;

DELIMITER $$
CREATE TRIGGER TR_ORDERS_INS
AFTER INSERT ON sept18.test for each row 
BEGIN
DECLARE MAX_DATE1 DATETIME;
IF EXISTS 
(
select 1 from ept18.test O
where O.STOREID = NEW.STOREID
AND O.ITEMID = NEW.ITEMID
AND O.ORDERDATE = NEW.ORDERDATE
)
THEN

    SET MAX_DATE1  = (SELECT max(DateTimeStamp) 
                        from sept18.test
                        where itemid = NEW.itemid
                        and storeid = NEW.storeid
                        and OrderDate = NEW.orderdate); 

    INSERT INTO sep18kentest.orders_history 
    (ORDERID,STOREID,ITEMID,ORDERDATE,QUANTITY,BONUSBUCK,FLATBONUSBUCK,PRICE,STOREPRICE,PRICEOVERRIDE,
    PRICEOVERRIDEFLAG,DIRECTSHIPFLAG,FREEITEMFLAG,SRP,DATETIMESTAMP,RECORDNUMBER)
    SELECT ORDERID,STOREID,ITEMID,ORDERDATE,QUANTITY,BONUSBUCK,FLATBONUSBUCK,PRICE,STOREPRICE,PRICEOVERRIDE,
    PRICEOVERRIDEFLAG,DIRECTSHIPFLAG,FREEITEMFLAG,SRP,DATETIMESTAMP,RECORDNUMBER
    FROM sept18.test OD
    WHERE OD.storeid = NEW.storeid
        and OD.itemid = NEW.itemid
        and OD.orderdate = NEW.orderdate
        and OD.DateTimeStamp  < MAX_DATE1;

   DELETE FROM  sept18.test
   WHERE storeid = NEW.storeid
        and itemid = NEW.itemid
        and orderdate = NEW.orderdate       
        and DateTimeStamp  < MAX_DATE1; 

   END IF;

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