2017-08-21 88 views
1

我有一個問題,我的本地安裝5.6.15的MySQL,這觸發正確的,它的工作:52年5月5日,MariaDB的VS 5.6.15 MySQL的觸發器不行

BEGIN 

    IF New.id_category_default = 566 
    THEN 
     SELECT COUNT(*) DATA INTO @conta 
      FROM `lorcustomization_field` 
      WHERE `id_product` = Old.id_product ; 

    IF @conta <=0 
     THEN 
     INSERT INTO `lorcustomization_field`(`id_product`,`type`,`required`) 
      VALUES(Old.id_product,1,0); 

    SELECT `id_customization_field` DATA INTO @idfield FROM `lorcustomization_field` 
    GROUP BY `id_customization_field` DESC LIMIT 1; 


    INSERT INTO `lorcustomization_field_lang` (
     `id_customization_field`, 
     `id_lang`, 
     `id_shop`, 
     `name` 
    ) 
    VALUES 
    (
     @idfield , 
     1, 
     1, 
     'prova' 
    ); 

    END IF; 
    END IF; 
END 

我遠程有5.5.52- MariaDB和觸發器在遇到其他選擇器停止時在第一個輸入處停止。 我錯在哪裏?

+0

您可以發佈所涉及表的結構以及一些示例數據並指出時間('BEFORE | AFTER')和事件('INSERT | UPDATE | DELETE')的觸發器? – wchiquito

+0

對不起AFTER UPDATE table lorproduct –

回答

0

**更改

SELECT COUNT(*) DATA INTO @conta 
     FROM `lorcustomization_field` 
     WHERE `id_product` = Old.id_product ; 

IF @conta <=0 
    THEN 

IF NOT EXISTS(SELECT * 
     FROM `lorcustomization_field` 
     WHERE `id_product` = Old.id_product) 
    THEN 

**更改

GROUP BY `id_customization_field` DESC LIMIT 1; 

ORDER BY `id_customization_field` DESC LIMIT 1; 

**如果您還沒有這些,請添加

INDEX(id_product) 
INDEX(id_customization_field) 
相關問題