如何编写删除行程的查询?

How to write a query for deleting a trip?

查询有困难。我是 SQL 的新人,所以我想为删除行程做更好的查询。

有谁知道如何使一次查询变得更容易?

谢谢

如果您想在一条语句中对所有 table 执行删除,并且您恰好使用支持 CASCADE 的 SQL 引擎,您可能很幸运。

从您的示例查询看来,所有 table 共享一个链式 PK\FK 关系。

  • 通过 checkpoint_id
  • 的场馆
  • 通过day_id
  • 的检查点
  • 天 trip_id
  • 行程(在顶部)

我的推断是 TRIP 是链的顶端。如果您专门定义了 PK\FK 关系 'CONSTRAINT',对于良好的 DB 设计,那么在每个 table 上,您可以使用选项 CASCADE 更改约束。完成后,只需从 trip 中删除一行,就会通过定义的关系自动删除下面的所有其他行。

换句话说,使用 CASCADE 和支持它的 SQL ENGINE - 您可以简单地发出最后一个删除语句,其余的是隐含的。

DELETE FROM trips WHERE id = 27

检查 table constraint options here. Pay attention to CASCADE definition. Similar question 并在此处进行解释。