gpt4 book ai didi

java - 每次DELETE后执行SQL语句

转载 作者:行者123 更新时间:2023-12-01 19:39:13 25 4
gpt4 key购买 nike

有没有办法让 jOOQ 在每次 DELETE 之后执行 SQL 语句(在我的例子中是 CHECKPOINT)?

理想情况下,还有一种方法可以指定发生这种情况的表。

我正在使用的 RDBMS (HSQLDB) 不允许在触发器内使用此语句,否则我会这样做。

最佳答案

Is there a way to make jOOQ perform a SQL statement (in my case a CHECKPOINT) after each DELETE?

最简单的方法是使用 ExecuteListener它检查当前语句是否是 DELETE 语句。你可以这样做:

  • 如果您还有不是使用 jOOQ DSL 生成的纯 SQL 语句,则在生成的 SQL 上使用正则表达式
  • 或者使用 instanceof Delete 检查 ExecuteContext.query()如果您确定只运行 jOOQ DSL 语句。

这是为了检测这样一个语句的执行。当然,您的后续声明可以以不同的方式运行。

Ideally there would also be a way to specify the tables that this happens for.

这有点棘手。您可以实现自己的 VisitListener查找特定表上的所有删除语句。

这仅在您使用 DSL API 时有效,除非您愿意在 parse 的 jOOQ 查询上运行 VisitListener基于您的纯 SQL 语句,在这种情况下,您也可以对任意其他语句执行此操作。假设解析器可以解析您的 SQL。

关于java - 每次DELETE后执行SQL语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55954842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com