tbl1 tbl2
id article_id
title, image
whole_news
tags,
author,
older (datetime)
次のように私は2つのテーブルを持っている - > tbl2.article_id
古いが< 2008-02-10 00:00:00両方のテーブルからレコードを削除する方法を?
tbl1 tbl2
id article_id
title, image
whole_news
tags,
author,
older (datetime)
次のように私は2つのテーブルを持っている - > tbl2.article_id
古いが< 2008-02-10 00:00:00両方のテーブルからレコードを削除する方法を?
私の答えは同様の質問hereを参照してください。要約する
、それは
delete s, r from tbl1 s left join tbl2 r on s.id = r.article_id where s.older < str_to_date('2008-02-10 00:00:00', '%Y-%m-%d %H:%i:%S');
のようになります。しかし、よりよい解決策は、削除カスケード上で外部キー制約されることがオプションであれば、その後、ちょうど適切なwhere句でTBL1から削除。
あなたはtriggers
最も簡単な方法を使用することができます:あなたは、DELETE CASCADEをONして外部キーを使用する必要があります。
InnoDBテーブルが必要です – Distdev
@Distdev:そうです。私は言及するのを忘れた。ありがとうございました! –
トリガーは、テーブルレベルでデータ関係を適切に実施するための貧弱なソリューションです。データの整合性が問題となる場合は、トリガーを使用する前にInnoDBに移行することをお勧めします。 – bot403