2

概要

14 日以上前の行からテーブルの履歴を消去する必要があります。

MySQLの専門家ではないので、検索すると次のようになります。

delete
    from SYS_VERROUS_POLICE
    where idModificationPolice not in (
                select distinct idModificationPolice
                    from SYS_VERROUS_POLICE
                    where date(dateHeureModification) 
                            between curdate() and curdate() - interval 14 day
            );

スローされた例外

しかし、私はこのエラーメッセージで立ち往生しています:

エラー コード: 1093。FROM 句で更新対象のテーブル 'SYS_VERROUS_POLICE' を指定することはできません。

何...

環境

MySQL はセーフ モードで動作しているように見えるため、日付が一致する場所で DELETE を実行することはできません。

セーフ モードで、日付フィールドのみを使用して削除しようとすると、準拠しません。

delete  
  from SYS_VERROUS_POLICE     
 where date(dateHeureModification) < curdate() - interval 14 day    

Error Code: 1175. You are using safe update mode and you tried to update a table without a 
WHERE that uses a KEY column
To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 
0,00071 sec

何か不足していますか?

4

3 に答える 3