如何编写删除行程的查询?
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 并在此处进行解释。
查询有困难。我是 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 并在此处进行解释。