MySQLにはoutput
に相当するものがありません またはreturning
他のデータベースによって提供される句。最善の策は一時的なテーブルです:
CREATE TABLE TheDeletedIds as
SELECT t1.id
FROM t1 LEFT JOIN
t2
ON t1.t2_id = t2.id
WHERE t2.id IS NULL OR t2.is_valid = false;
DELETE t1
FROM t1
WHERE t1.id IN (SELECT id FROM TheDeletedIds);
次に、作成したテーブルに必要なIDが含まれます。
注:削除には、新しく作成されたテーブルを使用することが重要です。そうしないと、別のスレッド/プロセスがIDをキャプチャしてから削除するまでの間にデータを変更する可能性があります。