mysql - MariaDB 和触发器作用于触发它的同一个表

标签 mysql triggers mariadb

我实际上正在使用 Mysql + InnoDB,但我遇到了一个非常麻烦的(至少对我而言)限制:触发器不能作用于触发它的同一个表。这也适用于 MariaDB 吗?迁移到 MariaDB 来克服这个问题是否有意义?

阅读文档时没有提到它,但一些用户可能会进一步解决这个问题。 https://mariadb.com/kb/en/mariadb/documentation/stored-programs-and-views/triggers/trigger-limitations/

最佳答案

问:这也适用于 MariaDB 吗?

答:是的,这个限制也适用于 MariaDB。

此限制记录在 MySQL 引用手册中。

“存储的函数或触发器不能修改已被调用该函数或触发器的语句使用(用于读取或写入)的表。”

(适用于存储函数的所有限制也适用于触发器。)

引用:http://dev.mysql.com/doc/refman/5.5/en/stored-program-restrictions.html


同样的限制也记录在 MariaDB 文档中:

https://mariadb.com/kb/en/mariadb/documentation/stored-programs-and-views/stored-functions/stored-function-limitations/


问:迁移到 MariaDB 来克服这个问题是否有意义?

答:迁移到 MariaDB 可能有意义,但不能作为您发现的问题的解决方法。

关于mysql - MariaDB 和触发器作用于触发它的同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25997096/

相关文章:

mysql - 将 Rails 升级到 4.1 后,Shift 不起作用。尝试从数组中删除第一项。不再让数组使用shift

google-apps-script - 函数 onOpen() 未运行

mysql - MariaDB JDBC 驱动程序与 SQL Server 相比无法有效地批量更新

docker - 多个独立的 mariadb 使用 : multiple containers or one? 隔离与效率?

mysql - 连接两个不存在于另一个表中但在某些条件下存在的表

mysql 大查询的错误结果

mysql - 比较日期的最快方法 : UNIX_TIMESTAMP or FROM_UNIXTIME or string

mysql - 需要mysql中的字段数

postgresql - 插入到另一个表后动态创建表

sql - 通过表触发器捕获存储过程参数