1

列のある単純なテーブルがあります。

date - DATETIME
name - varchar(50)
text - varchar(200)

11番目の行が追加される直前に削除する最も古い日付値を含む行を取得するにはどうすればよいですか?行数は常に10です。

4

3 に答える 3

1

トリガーを使用する

create TRIGGER trigger_name before insert on table_name FOR EACH ROW BEGIN if count > 10 then delete from table_name insert into table_name values(id, name , quantity); END if; END ;

このリンクも参照できます http://dev.mysql.com/doc/refman/5.0/en/triggers.html

于 2012-11-29T05:46:58.433 に答える
0

次のように削除クエリを使用して削除後トリガーを作成します。

     //get the row count
     IF rowCount > 10
       DELETE from myTable
       WHERE date = 
        (select date from 
          (select date from myTable
          order by date asc LIMIT 1) as tempTable
        )
      END IF;

削除クエリの同じテーブル条件が機能しないため、これをお勧めします。これが私の別の答えです。

于 2012-11-29T02:21:52.513 に答える
0

insert+ delete?を実行する代わりに、最も古い行を更新します。もちろん、最初にテーブルに10行あることを確認する必要があります。

于 2012-11-29T05:57:19.087 に答える