Oracleでユニークなタイムスタンプを作成したい場合は、以前のタイムスタンプをチェックし、以前に使用されていた場合は上書きする必要があります。 SQL Serverで作成しようとしましたが、動作しません。助けてくださいoracleにユニークなタイムスタンプを作成したい場合は、以前のタイムスタンプをチェックして、それが以前に使用されていた場合は上書きする必要がありますか?
0
A
答えて
0
私はあなたがそのようなことをしたいと思うことは想像できません。あなたのリクエストはたぶん、代わりにあなたはそれを得るために起こるまでは、(潜在的に合理的にビジー状態のシステム内の回数のために)反復されます
create table all_timestamps_returned (
ts timestamp primary key
);
create or replace procedure get_a_new_timestamp(p_new_ts out timestamp)
as
l_ts timestamp := systimestamp;
begin
insert into all_timestamps_returned(ts)
values(l_ts);
p_new_ts := l_ts;
exception
when dup_val_on_index
then
dbms_lock.sleep(0.01);
get_a_new_timestamp(p_new_ts);
end;
ような何かを探しています。この
create or replace function this_is_silly
return timestamp
is
t1 timestamp := systimestamp;
t2 timestamp := systimestamp;
begin
if(t1 = t2)
then
dbms_lock.sleep(0.01);
t2 := systimestamp;
end if;
return t2;
end;
に変換するように見えます固有のタイムスタンプまたは最大再帰制限を使い果たします。ループを使ってこれを繰り返し実行することもできますが、ユニークなタイムスタンプを取得せずに50回再試行した場合は、何らかのフェールセーフが必要になることがあります。繰り返しますが、複数のイベントが同時に発生し、シーケンスを使用して固有のキーを生成することを認識するのではなく、なぜこれを行う必要があるのかわかりません。しかし、あなたはできます。
+0
私の推測では、@ gowtham_dontuは関数によって生成されたタイムスタンプを保存し、後続の呼び出しで次のタイムスタンプが前のものと異なることを保証します1。 –
関連する問題
- 1. タイムスタンプが10秒以内に更新されない場合
- 2. elisp:シンボルに値が返されている場合はそれ以外の場合はnilを返します
- 3. チェックボックスがオンの場合はチェックボックスをオンにしたい場合はdivを非表示にします。それ以外の場合はチェックを外します。
- 4. 以前にXHTML transitional doctype用にコーディングされていた場合、html5のレンダリングのページは異なりますか?
- 5. 以前にtestBed.get()を呼び出した場合、ユニットテストでサービスを注入する必要がありますか?
- 6. マングースコレクションデータがある場合はそれ以外の場合はアップデート
- 7. NULLでない場合は値を使用し、それ以外の場合はループしてループします。
- 8. リポジトリにローカルインポートがある場合は、それ以外の場合はmaven経由でダウンロードしてください
- 9. PHP JQueryチェックボックス - チェックボックスが事前チェックされている場合、チェックされていない場合、チェックされた属性を削除しません。
- 10. 事前ビルドされたCMSを使用しない場合は、
- 11. UITabBarControllerを使用していて、UINavigationControllerを使用していない場合は、以前のViewControllerに戻る
- 12. Laravel 5.4以前の保存時にチェックされている場合、チェックボックスをチェックする必要があります
- 13. タイムスタンプが使用されていない場合にのみ挿入
- 14. ファイルが存在しない場合は作成して開くことができますが、それ以外の場合は失敗しますか?
- 15. JavaScriptのチェック 'URL'が空白の場合は「」、それ以外の場合はハイパーリンクとして表示します
- 16. セッションがある場合はページをロードし、それ以外の場合はリダイレクト
- 17. Djangoスーパーキーが存在しない場合は行を作成し、それ以外の場合は
- 18. 以前のタイムスタンプのエントリが存在しない場合のSQL操作からの行の除外
- 19. ASP.Net MVCのファイルアップロードで以前のエラーが発生した場合、Request.File.Countは1に設定されています
- 20. Laravel Validation =チェックボックスがチェックされている場合は2以上の整数値
- 21. javascriptが以前に実行されていて、それが[EnjoyHint.js]だった場合に再び実行されないことを覚えています
- 22. チェックした値がチェックされていない場合
- 23. glGenVertexArrays MainループにあるときにユニークなVAOを作成しないでください。それ以外の場合は動作します。
- 24. チェックボックスにチェックが入っている場合は、これ以外の操作をしないでください
- 25. オブジェクトが一定の時間内に10以上以上作成された場合、オブジェクトを作成しないようにしますか?
- 26. IDが存在しない場合はテーブルに挿入し、それ以外の場合はスキップします
- 27. TypeScriptは、以前にコンパイルされたJavaScriptファイルが削除された場合にのみコンパイルされます。
- 28. 30分以上前に更新されたタイムスタンプを使用してプルするクエリ
- 29. RMOを使用している場合、プッシュまたはプルサブスクリプションを使用する必要がありますか?
- 30. Direct3Dアプリケーションは、Windowsエクスプローラが動作している場合は正常に動作し、それ以外の場合は非常に遅くなります
「ユニークなタイムスタンプ」が何を意味するのかよくわかりません。タイムスタンプは本質的にユニークではなく、同じ瞬間に2つのアクションが発生する可能性があります。単調に増加するシーケンスを作成し、一定の日付(1970年1月1日、2000年1月1日、1900年1月1日など)の後のシーケンスミリ秒というタイムスタンプを生成できます。これはユニークなものですが、何かが起きたときにフィールドが実際にあなたに伝えないでしょう... –
私はこのような関数を作成する必要があります 1)タイムスタンプ(p1)を作成し、現在のタイムスタンプを保存します 2)別のタイムスタンプ(p2)でp1と比較する必要があります.p1 = p2の場合、00.009秒のような遅れで新しい関数を作成する必要があります –
2つのローカル変数を生成し、両方に 'systimestamp'を割り当て、 2つのローカル変数を比較し、9ミリ秒間待ってから、もう一度 'systimestamp'を呼び出して、2番目のローカル変数の値を上書きします。最初は、2つの変数がほぼ確実に一致します(特にWindowsで実行している場合) 。 –