前提:ORACLE
「一番古いレコードを取得する。」というのが条件です。
これを満たすだけであればSEQENCE等で連番を振れば満たせます。
しかし、日付時刻+連番であればカラム一つで時刻まで把握できます。
(日付時刻を利用することはありませんが、付加価値?として。)
というわけで、日付時刻+連番(桁固定のサイクリック)の主キーを使いたいのですが、
以下のように同時刻で連番が先頭に戻ると順番が守れません。
時刻A9999
時刻A0000 ← あとから挿入したのに同時刻の先頭になる
プログラムであれば同時刻なら連番を先頭から使うことも簡単ですが、
このよなことをSQL側だけでできるのでしょうか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
シーケンスを使う方法としては、1分以内に9999を超えることがないなら、
シーケンスを1分毎に0にリセットして使えばいいと思いますし、
他の方法としては、
連番 = (select nvl((select max(連番)+ 1 from テーブル
where 連番 like to_char(sysdate,'hhmiss') || 'A%')
,to_char(sysdate,'hhmiss') || 'A0001')
from dual)
で既に登録されたデータに1を加えてもいいと思いますが。
※どちらも秒単位で連番という仕様で書いています。
単に連番で付けている番号だけでサイクリックにすると質問の現象は防げません。
(防ぐためには、サイクリックにはできません。どこかでリセットするか十分に大きな桁数をとるか
いづれかが必要です。)
なお、同時に複数のコミットされていないデータが発生する
(DB側が、2CPU以上で同時に処理されている)というのなら、不可能。
(複数のCPUをまたいで連番を共有することはプログラムでもできっこないです。)
・・・2CPU以上で同時に処理されているのでなければミリ秒まで同一のデータが出来るのは
あまり起きないと思うのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- エアコン・クーラー・冷暖房機 日立のエアコンのリモコン 5 2023/04/01 00:25
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- 時計・電卓・電子辞書 ソーラー腕時計の自動時刻合わせが、いつもずれてしまう 7 2022/12/04 10:36
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- 会社・職場 遅刻防止対策 教えてください… 4 2022/04/09 11:54
- Windows 10 パソコンを再起動、起動するたびに時間が戻る。 7 2022/10/20 06:01
- その他(学校・勉強) 緊急やねん!おらへんのか?親身にご回答頂ける方!! 職業訓練いってます 朝9時10分にショートホーム 4 2022/05/18 23:50
- その他(悩み相談・人生相談) あなたのご意見お聞かせください!! 職業訓練いってます 朝9時10分にショートホームルームが始まりま 6 2022/05/18 23:33
- その他(学校・勉強) SOS 職業訓練に詳しい方!真面目な相談 職業訓練いってます 朝9時10分にショートホームルームが始 1 2022/05/18 19:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日の日付が入った行のデータ...
-
重複するIDのデータを1行にま...
-
SQLで部分的にGROUP BYしたいとき
-
Accessの数値から時間に変換す...
-
テーブルの主キーをdate型...
-
エクセルVBA 今日の日付行...
-
WHERE句にて「30日前から今日ま...
-
エクセルのヘッダーを変数で指...
-
Excelグラフの日付軸の日付がず...
-
yyyy/M/dをyyyy/MM/ddに変換
-
Oracle10gのsql分についての質...
-
日付書式に変換でこまっています!
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
javascriptで、○営業日後を求める
-
エクセル 日付による並べ替え...
-
日付関数について
-
検索SQLについて
-
CSVでの変換とエクセルデータ(...
-
Excelの並べ替え後のデータを日...
-
oracle 文字列 01:45 を時間に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessの数値から時間に変換す...
-
今日の日付が入った行のデータ...
-
SQLで部分的にGROUP BYしたいとき
-
SQLサーバで和暦から西暦に変換...
-
14桁の日付(YYYYMMDDHHMMSS)を...
-
エクセル 日付による並べ替え...
-
テーブルの主キーをdate型...
-
重複するIDのデータを1行にま...
-
oracle 文字列 01:45 を時間に...
-
日付型なら変数の先頭になん...
-
指定した年月までのデータを取...
-
Excelグラフの日付軸の日付がず...
-
日付書式に変換でこまっています!
-
エクセルVBA 今日の日付行...
-
wordの差し込み印刷での日付表示
-
日付の切り出し方法について
-
yyyy/M/dをyyyy/MM/ddに変換
-
SQL ブレーク処理について
-
23時59分59秒までのデータを抽...
-
WHERE句にて「30日前から今日ま...
おすすめ情報