これは一見良さそうに見える質問ですが、意味合いがあります。
まず第一に、これらのリレーションのステータスを読み取った後、誰もそれらを変更できないようにする必要があるため、明らかにトランザクションを使用して問題の行をロックする必要があります。
次に、誰かが後で新しい関係を追加した場合に何が起こるかについての質問をここのコメントで見るように、チェックする関係を把握する方法が必要です。そのため、スキーマを変更するたびに検出メカニズムを実行するだけで済むように、スキーマにクエリを実行するか、スキーマからこのコードを自動生成する必要があります。
さて、この試練の後で、あなたが受け取る例外は、本当にそれほど高くつくように見えますか?