sql >> データベース >  >> RDS >> Mysql

MySQLでは、削除後に削除された行を返すことができますか?

    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をキャプチャしてから削除するまでの間にデータを変更する可能性があります。



    1. PostgreSQLデータベース内のすべてのトリガーを一覧表示する2つの方法

    2. スペルミスのある都市名に最も近いものを見つけますか?

    3. SQLServerでビューを暗号化する方法

    4. 列の値をコンマ区切りのリストに連結する