我正在尝试编写一个 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 服务器版本相对应的手册,以了解在第 …