私は今、私は制限したいデータベースの行数を自動的に制限する方法は?
...私はIPアドレスなど、自分のログイン時間を含む、この表では、ユーザーがログインするたびに新しい行を挿入、次の表
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| ID | int(11) unsigned | NO | PRI | NULL | auto_increment |
| userid | int(10) unsigned | NO | MUL | NULL | |
| logintime | int(10) unsigned | NO | | NULL | |
| loginIP | int(4) unsigned | NO | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
を持っていますユーザーあたり10個までの行数!つまり、ユーザーID5の行がすでに10行ある場合は、新しい行を挿入しています。挿入前に最も古い行を削除する必要があります。
は、DELETE
の最近の10個を除くすべてのユーザーIDのエントリをSQL文で記述する手段です。私はSELECT
のためにLIMIT
を使用する方法を知っていますが、私はDELETE
でLIMITをどのように実装することができません。これらの線に沿って
は、[トリガー](HTTPを使用するための完璧なケースのように思えるところ。 mysql.com/doc/refman/5.0/ja/triggers.html) – bfavaretto
@Riki Lyng SQLはこの機能を直接提供していません。 bfavarettoが言っているように、テーブルへの挿入を削除または制限するトリガーを追加することができます。他の方法は、挿入を制限するためにMySQLデータベースを呼び出すコードを変更することです – umlcat