2016-05-27 1 views
-1

私が使用してテーブルを作成する場合:sqlite、古いエントリを削除するには?

CREATE TABLE IF NOT EXISTS Pics (X INTEGER NOT NULL, Y INTEGER NOT NULL, Z INTEGER NOT NULL, T INTEGER NOT NULL, Pic BLOB NULL,PRIMARY KEY(X, Y, Z, T)) 

を私は使用してこのテーブルに1000個のエントリを挿入言う:

REPLACE INTO Pics(X, Y, Z, T, Pic) 

どのように私は最も古く、それを削除しているエントリを知っている可能性がありましたか? 私が達成したいのは、エントリが1000行以上あるかどうかを確認することです。新しい行が挿入されると、最も古いものが削除されます。

+0

私はそれに留意し、ここで別の質問をしました:http://stackoverflow.com/questions/37491307/how-to-insert-a -column-is-the-current-total-row-number-in-sqlite – Nyaruko

答えて

1

できません。

どの行が最初に挿入されたかを知るには、注文の概念が必要です。

注文を意味する値の間には何の関係も記述されていませんが、代わりにX、Y、Zなどの名前が付けられているので、そのような関係はないと思われます。

このように、最初に挿入された行が2つあります。

これらの行を特定する方法がないため、「最も古い」を削除することはできません。

次はあなたがあなたのテーブルに追加することができますいくつかのものですが、おそらくない完全なリスト:

  • タイムスタンプ列、行が言って、
  • 増分列を追加したときにあなたにを伝えますあなたの行が追加された
  • X値が順番に並んでいて、次にY値が順番に並び、Z値があなたが注文できるように、注文していますX、Y、Zで始まり、行を最初の順序で取得します。
+0

まあ、私はそれに注意し、ここで別の質問をしました:http://stackoverflow.com/questions/37491307/how-to-insert -a-column-of-the-current-total-row-in-sqlite – Nyaruko

+0

ああ、私は増分列として現在の合計行番号を使用したいと思います。 – Nyaruko

関連する問題