【问题标题】:Add order by clause to delete in JOOQ在 JOOQ 中添加要删除的 order by 子句
【发布时间】:2019-01-06 14:44:58
【问题描述】:

我想按降序删除一个表。我的查询也有连接。由于jooq不支持order by with delete,有什么解决方法吗?

【问题讨论】:

  • 为什么? ... order by in delete in unsuseful .. 你可能正在寻找一个带有 order by 的选择
  • @scaisEdge,也许有删除触发器?这还有效吗?
  • @scaisEdge 我在同一个表中有外键约束,所以我需要按特定顺序删除行
  • 那么你必须按照你需要的顺序选择并一个一个删除..在选择结果上循环......删除没有一个order by子句
  • @scaisEdge 这个过程会很繁重,因为我的桌子很大

标签: java mysql jooq


【解决方案1】:

根据MySQL docs, chapter 13.2.2 DELETE Syntax,您不能将ORDER BY 与跨越多个表的DELETE 语句一起使用:

多表删除

您可以在 DELETE 语句中指定多个表,以根据 WHERE 子句中的条件从一个或多个表中删除行。不能在多表 DELETE 中使用 ORDER BY 或 LIMIT。

如果 JOOQ 没有 ORDER BY on DELETE 恐怕你必须编写普通的 SQL 和 JDBC。

【讨论】:

猜你喜欢
  • 2011-09-07
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
相关资源
最近更新 更多