2016-06-15 14 views
-1

例:私はlogtableを作成しました.1000レコードで行の制限を維持したいと考えています。 ... 1000行後にレコードを挿入すると、1行目から削除したり、 には、超簡単な解決策はありませんmysqlテーブルの行を制限して、新しい行を上書きして1行目から挿入する方法はありますか?

+0

タイムスタンプ列を含むテーブルを作成します。 1000行を挿入します。最も古いタイムスタンプを持つ行のみを更新するか、タイムスタンプが等しい場合は、最も小さいIDを持つ行のみを更新して、テーブルを更新します。 – Strawberry

+0

適切な文法を試してください –

答えて

0

誰でもplzは助けmysqlの中の任意のソリューションをDERであるが、これは可能です。基本的に、あなたは2つのことをする必要があります。

最初は、行がテーブルに挿入される順序を記録することです。 SQLテーブルは、の順序付けされていないセットを表しているため、この順序付けは明示的に組み込む必要があります。 1つの簡単な方法は、テーブルの自動インクリメントIDです。

もう1つはinsertにトリガーを追加することです。新しい行が挿入されると、このトリガーは行を削除します。このトリガーはの挿入トリガーの後ににすることをお勧めします。

これはアプリケーションレイヤーでも実行できます。たとえば、ストアドプロシージャを使用して新しい行を挿入する場合、ストアドプロシージャはdeleteinsertを実行できます。

最後に、目的が古いデータを排除するだけであれば、他にもオプションがあります。たとえば、余分な行を定期的に削除するために、表のパーティション化またはジョブ(イベント)のスケジューリングを検討することができます。

+0

私はサンプルのサンプルを私に送ることができますplz:私のプロジェクトではすでにテーブルを作成しており、すでに列IDの自動インクリメントを維持しています.....私は追跡して確認できます、 1000私はここで挿入するのではなく、1から1000に更新する必要があります私のテーブル内の任意の行を削除したいだけ挿入し、更新 – user3437560

関連する問題