這在一定程度上關係到this question未引用行:刪除外鍵
我有一個表的主鍵,我也引用該主鍵(使用外鍵)幾個表。我需要從該表中刪除行,其中主鍵未在任何其他表中引用(以及一些其他約束)。
例如:
Group
groupid | groupname
1 | 'group 1'
2 | 'group 3'
3 | 'group 2'
... | '...'
Table1
tableid | groupid | data
1 | 3 | ...
... | ... | ...
Table2
tableid | groupid | data
1 | 2 | ...
... | ... | ...
等。組中的某些行沒有在任何表中引用,我需要刪除這些行。除此之外,我需要知道如何找到引用組中給定行的所有表/行。
我知道我可以查詢每個表並檢查groupid的,但因爲它們是外鍵,所以我認爲有更好的方法來實現它。
這是使用Postgresql 8.3的方式。
就像我說的,我想避免這種情況。有幾個表,名稱約定不是標準的,它很慢。由於約束已經到位,我認爲必須有更好的方法。 – 2009-08-18 16:19:04