向我的 H2 数据库中的每个表添加触发器
Posted
技术标签:
【中文标题】向我的 H2 数据库中的每个表添加触发器【英文标题】:add trigger to every table in my H2 database 【发布时间】:2015-05-17 13:29:31 【问题描述】:我试图为我的 h2 数据库中的每个数据库表添加一个触发器,但我不知道该怎么做。
我可以选择数据库中的所有表,但是如何循环遍历它们以对每个表应用触发器,如下所示?
SELECT * FROM INFORMATION_SCHEMA.TABLES
循环遍历每一个并为每一个应用触发器
CREATE TRIGGER MYTRIGGER AFTER INSERT ON TableName FOR EACH ROW CALL\"test.h2Trigger\"
【问题讨论】:
【参考方案1】:您可以尝试创建一个存储过程,在其中打开一个游标以获取每个表名,并使用服务器端准备好的语句在每个表上创建触发器。请参阅http://forums.mysql.com/read.php?60,27979,30437 了解如何使用准备好的语句。
如果你使用 Perl 或 php 脚本来做这件事会更容易。
为什么需要在每个表上创建触发器?
【讨论】:
我想在我的数据库中的表上记录活动,因此需要为每个表添加触发器...它是一个 h2 数据库,所以我认为它不允许存储过程? 即使被允许,它们仍然很贵。 是的,我知道,但这纯粹是本地环境的事情,不在生产中 h2 支持某种触发器。检查h2database.com/html/features.html#triggers。 如果我将它们应用到单个表,我的触发器就会工作,我面临的问题是想出一种方法来应用到我的数据库上的所有表......比如,选择所有表并对于每个应用触发器以上是关于向我的 H2 数据库中的每个表添加触发器的主要内容,如果未能解决你的问题,请参考以下文章