有人告诉我,我需要在我的触发器中使用分隔符。我正在查看MySQL手册页,并在示例中找到它;但是,它不在通用文档中。MySQL:如何在触发器中使用分隔符?
这里我想纠正代码:
CREATE TRIGGER adult BEFORE INSERT OR UPDATE ON table5.column5
FOR EACH ROW BEGIN
UPDATE table1 SET column5 = table5.column5 WHERE table5id = table1xtable5.table5id WHERE table1xtable5.table1id = OLD.table1.id$
END$
老实说,我不知道如何做到这一点,并在http://dev.mysql.com/doc/refman/5.5/en/create-trigger.html文件似乎是一个可怕的不足参考。例如,在阅读“old
”和“new
”时,它会引用“subject table
” - 与触发器关联的表格。有两个表与这个触发器相关联,我实际上试图将更多的表与这个触发器联系起来....当查看示例代码时,影响表4的UPDATE
行仅使用表4中的列(他们'重新添加1的值)。此外,他们正在使用WHERE ~ a3 = NEW.a1
。我不认为这个ID的工作就是这样。不应该有跨表格工作的通用标识。在示例中,它们应该一定要使用相互依赖关系表,以便适用。
我实际上在今天早些时候问过一个类似的问题,关于这么做的好方法是什么,但现在我想知道,简单地说,如果有一种方法。谢谢阅读。 :)
这里是更新另一个表的触发器的例子,但它似乎没有使用分隔符:
CREATE TRIGGER mytrigger BEFORE INSERT ON odp
FOR EACH ROW
UPDATE total_points SET points = points + NEW.points;
什么都不用在这个例子说明的是如何odp
和total_points
重叠。我们如何确定total_points
表的points
行是正确的points
行? MySQL中更新哪个表的points
表中的哪一行? x //
因此,不应该有某种方法来指定要更新哪个total_points.points行BEFORE INSERT ON odp
?
这是$$代替; – matino