新米エンジニアの失敗再発防止メモ

自分そしてこの世界の皆が、同じ失敗をしないためのメモ

Twitterやってます!@rakuton_t
欲しいものリストのブタメンを送ってくれた方、ありがとうございます!

DBにInsert(挿入)した順番にソートして参照する簡単な方法

前提

これからInsertするデータが前提です。
既にInsertしたデータについては、どうやるか知らないです。

ずばりこれ

オートインクリメントの属性を持つ列を追加する!

sql serverでやる場合はこちらが分かりやすいです。
テーブルの列を自動インクリメント列(自動採番列)に設定する (SQL Server Tips)

必要なところだけ抜き出すとこれ

[id] [int] IDENTITY(1,1)

とすることによって、必ず連番が入るようになります。ちなみにこれは「(1,1)」なので、1から始まって1ずつ足していくという意味ですね。
これによって、order by句でこの列を指定することで挿入順にソートが可能です。

他のDBを使っている場合でも同様の仕組みがあると思いますので検索してみてください。

メリット

このやり方は既存の機能にほぼ影響を与えません。
列を追加するだけで、勝手に連番が付与されて、SELECTするときのソートに使うだけですんでね。
SQLのSELECT(参照)しているところのOrderBy句を変える以外は特にプログラムに変更も不要です。

確実ではないやり方

大抵の場合、作成日時、更新日時は列に持っていると思います。sql serverの場合、ミリ秒単位まで格納できたはず。
が、DBの処理は高速なので、連続でInsertした場合ミリ秒単位でも同時刻になることがあります。
よって、作成日時でソートするやり方は不完全なのです。

もっと簡単な方法あったら教えてください!

お願いします!

私の記事が役に立ったら、どうぞ何か買ってください!→ Amazon欲しいものリスト