我正在尝试自动化我的触发器过程,这样我就不必为我想要使用的每个表手动创建触发器。不幸的是,我收到一条错误消息,说存在语法错误。
这是我的代码
$updateTrigger = "DROP TRIGGER IF EXISTS {$table}Update
CREATE TRIGGER {$table}Update AFTER UPDATE ON $table
FOR EACH ROW
BEGIN
DECLARE N DATETIME;
SET N = now();
INSERT INTO StagesHistory (Stage, StageID, Date, Action)
VALUES ('$table', NEW.ID, N, ?);
END";
$ut = $dbh->prepare($updateTrigger);
$ut->execute(array($update));
$error = $ut->errorInfo();
评估$error
返回此错误消息:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“CREATE TRIGGER TranslationUpdate AFTER UPDATE ON Translation FOR EACH R”附近使用正确的语法
我无法弄清楚它在说什么错误。有什么问题,我该如何解决?