verwiesen wird diese etwas im Zusammenhang mit this question:Reihen entfernen NICHT durch einen Fremdschlüssel
Ich habe eine Tabelle mit einem Primärschlüssel, und ich habe mehrere Tabellen, die den Primärschlüssel Referenz (unter Verwendung von Fremdschlüsseln). Ich muss Zeilen aus dieser Tabelle entfernen, in denen der Primärschlüssel in keiner dieser anderen Tabellen referenziert wird (sowie einige andere Einschränkungen).
Zum Beispiel:
Group
groupid | groupname
1 | 'group 1'
2 | 'group 3'
3 | 'group 2'
... | '...'
Table1
tableid | groupid | data
1 | 3 | ...
... | ... | ...
Table2
tableid | groupid | data
1 | 2 | ...
... | ... | ...
und so weiter. Einige Zeilen in der Gruppe sind in keiner der Tabellen referenziert, und ich muss diese Zeilen entfernen. Außerdem muss ich wissen, wie alle Tabellen/Zeilen gefunden werden, die auf eine bestimmte Zeile in der Gruppe verweisen.
Ich weiß, dass ich nur jede Tabelle abfragen und die Gruppen-IDs überprüfen kann, aber da sie Fremdschlüssel sind, stelle ich mir vor, dass es einen besseren Weg gibt, es zu tun.
Dies ist mit Postgresql 8.3 übrigens.
Nun, wie ich schon sagte, ich möchte diese Situation vermeiden. Es gibt mehrere Tabellen, die Namenskonventionen sind nicht Standard und es ist langsam. Da die Einschränkung bereits vorhanden ist, denke ich, dass es einen besseren Weg geben muss. –