Удалить строки, на которые НЕ ссылается внешний ключ
Это в некоторой степени связано сэтот вопрос:
У меня есть таблица с первичным ключом, и у меня есть несколько таблиц, которые ссылаются на этот первичный ключ (используя внешние ключи). Мне нужно удалить строки из этой таблицы, где первичный ключ неt упоминается в любой из этих других таблиц (а также в нескольких других ограничениях).
Например:
Group
groupid | groupname
1 | 'group 1'
2 | 'group 3'
3 | 'group 2'
... | '...'
Table1
tableid | groupid | data
1 | 3 | ...
... | ... | ...
Table2
tableid | groupid | data
1 | 2 | ...
... | ... | ...
и так далее. Некоторые из строк в Group aren 't упоминается в любой из таблиц, и мне нужно удалить эти строки. В дополнение к этому мне нужно знать, как найти все таблицы / строки, которые ссылаются на данную строку в группе.
Я знаю, что могу просто запросить каждую таблицу и проверить groupidс, но так как они являются внешними ключами, я думаю, что есть лучший способ сделать это.
Кстати, это использует Postgresql 8.3.