2017-08-21 43 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) 
相关问题