9

データベースの列に最後に挿入された値のクエリを教えてください。

問題は、挿入された値が使用後にデータベースの内部行に配置される可能性があるため、メソッドを使用ASCできないことです。DESC誰かが解決策を持っている場合は教えてください。

4

2 に答える 2

12

TIMESTAMP挿入時間を追跡するには、データ列を使用する必要があります。残念ながら、固有の競合状態のため、この場合、自動インクリメント主キーの使用は機能しません。エントリのタイムスタンプをデータ列として追加し、取得しORDER BY time_stamp DESC LIMIT 1て最後のレコードを取得するだけです。あなたが本当に防御的だと感じている場合は、元の呼び出しWHEREに固有の条件を句に含めることを目指してください(つまり、 )INSERTWHERE ID = x AND KEY = y

于 2012-07-13T16:30:55.693 に答える
2

私は@Daniel Liのコメントに二番目です。

私が作成するすべての永続テーブルには、次の列があります。

  • 最初の列であり、自動インクリメント/ID/シリアル列である id
  • CreatedBy はデフォルトでユーザー (SQL Server では "default system_user") になるため、誰が列を更新したかがわかります
  • CreatedAt の既定値は作成日時です (SQL Server では "default getdate()")。

(正確な構文はデータベースによって異なります。)

競合状態を除いて、「select * from table order by 1 desc」を実行することで、最後に挿入された行を見つけることができます。

これらは余分なスペースを必要としますが、時間の経過とともに問題を解決できるため、見返り以上のものであることがわかりました.

于 2012-07-13T17:05:10.593 に答える