如何在MySQL触发器中构造此IF条件

时间:2013-08-22 16:59:27

标签: mysql sql

我正在尝试编写MySQL触发器。我有两个看起来像这样的表:

tables

当客户进行购买时,会向每个表添加新记录。我已将列'sku_copy'添加到表B中,因此在创建新记录时不会填充它。

创建新记录时,我希望我的触发器将表A中的'sku'字段复制到表B中的'sku_copy'字段。但是,我遇到的问题是如何构建以下条件触发。

IF:表A中的'order_id'与表B中的'order_id'匹配。那么:将表A记录中的'sku'复制到表B中的匹配'order_id'的记录中。数据应添加到表B“sku_copy”。

ELSE:什么都不做。

有人可以告诉我如何将其写入触发器吗?

感谢您提供任何帮助。

2 个答案:

答案 0 :(得分:0)

试试这个,但为什么你会想到使用触发器呢?

 DELIMITER $$
    CREATE TRIGGER trigger_name
        AFTER INSERT ON tableA
        FOR EACH ROW BEGIN

        INSERT INTO tableB
        SET sku_copy = OLD.sku,
             order_id = OLD.order_id,
            order = OLD.order;

    END$$
    DELIMITER ;

答案 1 :(得分:0)

我想发布使用此处提供的示例和另一个论坛构建的触发器。感谢所有为此提供帮助的人。

DELIMITER $$

   CREATE TRIGGER sku_AfterInsert
     AFTER INSERT ON uau3h_virtuemart_order_items
     FOR EACH ROW BEGIN

     UPDATE uau3h_virtuemart_orders
     SET order_item_sku_copy = NEW.order_item_sku
     WHERE virtuemart_order_id = NEW.virtuemart_order_id;
  END$$;

DELIMITER ;