2010-11-19 7 views
1

こんにちはを持って削除行私は2つのテーブルのドキュメントやプロジェクトを持っています。表はFKの関係

文書IDは、プロジェクトテーブルでFKあります。どのように私は 、ドキュメントテーブルにドキュメントのレコードを削除しても、プロジェクトテーブル内の対応するレコードを削除することができ、SQLを使用して

おかげ

+0

ドキュメントテーブルから削除する行を選択するためのあなたの基準は何ですか? > 125ドキュメントテーブル内 – EJC

+0

IDは、基準 – raklos

答えて

0
delete 
    from projects 
where documentsFK = (
         select documentFK 
         from documents 
         where documentsFK > 125 
        ); 

delete 
    from documents 
where documentsFK > 125; 

EDIT

delete 
    from projects 
where documentsFK in (
         select documentFK 
         from documents 
         where documentsFK > 125 
        ); 

delete 
    from documents 
where documentsFK > 125; 
+0

(どこから文書を選んでください?)...これは私の場合には複数の行を生成します。だからクエリは動作しません – raklos

+0

私は思うに使用することができますが、私は間違っているかもしれませんが、あなたも同様に使用するために返されたデータを操作する必要があります... – EJC

5

外部キーを作成し、指定ON DELETE CASCADEテーブル制約としてです。

この制約は、文書が削除された場合、外部キーとしてそれを参照するすべてのプロジェクトの行も削除されることを意味します。

+0

それとも、これはあまりにも仕事とです:) – EJC

+0

テーブルが既に作成されていますか?私はそれらを迎えることができますか? – raklos

+1

@raklos - いつでも変更された制約を削除して追加することができます。 – Oded