在 JOOQ 中使用 NOWAIT 和 SKIP LOCKED 子句的解决方法

Workaround for using NOWAIT and SKIP LOCKED clause in JOOQ

我正在使用 Jooq 进行数据库事务管理。我发现 NOWAITSKIP LOCKED 子句仅在 MySQL 的更高版本中受支持。在我使用的 MYSQL 版本中不支持它们。那么,在 JooQ 中,是否有解决方法可以解决这个问题?其中一个线程不等待锁定的实体并继续处理其他实体而不更改 innodb_lock_wait_timeout 数据库配置?

SKIP LOCKED 很难模拟,但是使用 innodb_lock_wait_timeout 会话变量模拟 WAIT nNOWAIT 非常有意义。我们已经在 jOOQ 3.15 中为 PostgreSQL 这样做了,所以为什么不对旧版本的 MySQL 也这样做:

这将在 jOOQ 3.15 中提供