小编tk7*_*748的帖子

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

我正在尝试编写一个 MySQL 触发器。我有两张这样的表:

Table A------------------------------Table B

order_id--------sku---------------order_id----order_#----sku_copy

    568---------AAA---------------568---------2345
    567---------BBB---------------567---------6789-------empty column
    566---------CCC---------------566---------1234
Run Code Online (Sandbox Code Playgroud)

当客户进行购买时,每张表都会添加一条新记录。我已将列“sku_copy”添加到表 B,因此在创建新记录时不会填充它。

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

如果:表 A 中的“order_id”与表 B 中的“order_id”匹配。然后:将表 A 记录中的“sku”复制到表 B 中具有匹配“order_id”的记录。数据应添加到表 B 'sku_copy'。

我正在使用以下 SQL 触发器,但在运行时出现此错误:

“#1363 - INSERT 触发器中没有 OLD 行”

这是触发器:

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 ;
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何更正此代码中的错误或提出更好的建议吗?

感谢您提供的任何帮助。

这是一个更新:

我试过这个触发器(这是实时数据而不是上面例子中的简化)但得到一个错误代码:

“#1064 - 您的 SQL 语法有错误;请检查与您的 MySQL 服务器版本相对应的手册,以了解在第 …

mysql trigger

5
推荐指数
1
解决办法
9万
查看次数

标签 统计

mysql ×1

trigger ×1