检查MySQL中是否可以删除行

时间:2010-09-14 18:37:37

标签: mysql foreign-keys delete-row

有没有办法可以检查是否有可能删除某行?例如,它目前没有通过受限制的外键连接到其他任何东西。

原因:我正在制作一个管理页面,其中列出了系统中的所有用户。它们始终可以被禁用,但也可以删除它们。但是,如果它们没有连接到任何关键的东西,它们只能被删除。如果可以在数据库中轻松完成,我想不必手动检查。

注意:我不想删除任何用户。我只想向管理员显示用户可能被删除。

4 个答案:

答案 0 :(得分:4)

您可以尝试将其作为事务的一部分删除,然后如果成功则回滚事务。但是,我想紧接着的后续问题是,如果您可以删除该行,为什么不首先知道?

答案 1 :(得分:1)

您可以使用视图来总结依赖项的数量,而无需担心存储数据和数据。保持最新状态。当依赖项的数量为零时,在UI中使删除选项可用...

答案 2 :(得分:1)

您可以通过左边连接到他们所连接的表格来获取所有孤立的行,例如这将为您提供所有没有任何工作的用户ID。

SELECT u.id FROM users u LEFT JOIN jobs j on u.id=j.user_id WHERE j.user_id is null;

答案 3 :(得分:0)