MariaDB:引用旧行时出现语法错误
MariaDB: syntax error in Referencing old row
我正在尝试执行我在 MariaDB's Trigger examples:
中找到的一个非常基本的触发器
CREATE TRIGGER Books_Delete
AFTER DELETE ON Books /* See note (a) */
REFERENCING OLD ROW AS Old /* See note (b) */
FOR EACH ROW /* See note (c) */
INSERT INTO Books_Deleted_Log
VALUES (Old.title); /* See note (d) */
这不起作用,因为我在第 3 行的查询中存在语法错误:REFERENCING OLD ROW ...
。一般来说,我无法 运行 我为 MariaDB 或 MySQL 找到的任何示例。那么这里有什么问题呢?我读到 REFERENCING
部分不是必需的,但没有它也无法工作。我做的任何触发器查询都是 SQL 语法错误。这可能与使用 DBeaver 作为 SQL-Client 相关吗?
我希望触发器看起来像这样:
DELIMITER $$
CREATE TRIGGER Books_Delete
AFTER DELETE ON Books
FOR EACH ROW
BEGIN /* See note (c) */
INSERT INTO Books_Deleted_Log(title)
VALUES (Old.title);
END;$$
DELIMITER ;
REFERENCING
不是 MySQL 语法的一部分,而是 MariaDB 语法的一部分。
我正在尝试执行我在 MariaDB's Trigger examples:
中找到的一个非常基本的触发器CREATE TRIGGER Books_Delete
AFTER DELETE ON Books /* See note (a) */
REFERENCING OLD ROW AS Old /* See note (b) */
FOR EACH ROW /* See note (c) */
INSERT INTO Books_Deleted_Log
VALUES (Old.title); /* See note (d) */
这不起作用,因为我在第 3 行的查询中存在语法错误:REFERENCING OLD ROW ...
。一般来说,我无法 运行 我为 MariaDB 或 MySQL 找到的任何示例。那么这里有什么问题呢?我读到 REFERENCING
部分不是必需的,但没有它也无法工作。我做的任何触发器查询都是 SQL 语法错误。这可能与使用 DBeaver 作为 SQL-Client 相关吗?
我希望触发器看起来像这样:
DELIMITER $$
CREATE TRIGGER Books_Delete
AFTER DELETE ON Books
FOR EACH ROW
BEGIN /* See note (c) */
INSERT INTO Books_Deleted_Log(title)
VALUES (Old.title);
END;$$
DELIMITER ;
REFERENCING
不是 MySQL 语法的一部分,而是 MariaDB 语法的一部分。