2012-07-13 23 views

答えて

12

挿入時間を追跡するには、TIMESTAMPデータ列を使用する必要があります。残念なことに、固有の競合条件のために、この場合、自動インクリメントのプライマリキーを使用することはできません。エントリのタイムスタンプをデータ列として追加し、ORDER BY time_stamp DESC LIMIT 1で取得して最後のレコードを取得します。あなたが本当に守備的だと感じている場合は、元のINSERTコールに固有の条件をWHERE節に含めることを目指してください(WHERE ID = x AND KEY = y

2

1秒@Daniel Liのコメント私が作成したすべての永続的なテーブルで

、私は次の列があります。最初の列と自動インクリメント/アイデンティティ/シリアル列

  • CREATEDBYある

    • IDをユーザーにどのデフォルト(」 SQL Server内の "(既定のGETDATE())。

    (エクサ列に

  • CreatedAtを作成する日時にデフォルト更新されたSQL Serverで)ので、私は知っている" デフォルトのSYSTEM_USER ct構文はデータベースによって異なります。

    競合条件を除いて、「select * from table order from 1 desc」を実行すると、最後に挿入された行が見つかります。

    これらは余分なスペースを必要としますが、時間が経つにつれて問題を解決できるようにすることで、それ以上の費用を負担することがわかりました。

  • 関連する問題