To pytanie, które na pierwszy rzut oka wygląda dobrze, ale ma konsekwencje.
Przede wszystkim musisz upewnić się, że po zapoznaniu się ze statusem tych relacji nikt nie może ich zmienić, więc oczywiście musisz użyć transakcji i zablokować odpowiednie wiersze.
Następnie potrzebujesz sposobu, aby dowiedzieć się, jakie relacje sprawdzić, jak widzę w komentarzu tutaj twoje pytanie o to, co się stanie, jeśli ktoś później doda nową relację. Musisz więc wysłać zapytanie do schematu lub być może automatycznie wygenerować ten kod ze schematu, aby mechanizm wykrywania działał tylko za każdym razem, gdy zmieniasz schemat.
Czy wyjątek, który otrzymujesz, naprawdę wydaje się tak drogi po tej próbie?