http://haacked.com/archive/2004/02/28/sql-auto-increment.aspxに以下のアプローチがありますが、PL/SQLで不運がありませんでした。何かご意見は?設定されたライン変数をインクリメントするPL/SQLアップデート
答えて
これがあなたのために良い仕事かもしれないOD後半にVAR1のインクリメントが好きではないよう
update table
set table.column = var1 = var1 + 1
where table.column2 = "value';
:
update table
set table.column = table.column + 1
where table.column2 = "value';
は、あなたが何をされる必要があるかのような音@狼は、シーケンスと言いました。そうでない場合は、これを行うことができます:
カラム2の値は一意であるか、重複しているといいでしょう。
申し訳ありませんが、私はそれを行うことはできません。なぜなら、table.columnの現在の値は一意ではないからです。このアプローチでは、値を1ステップ増やすだけです。私が実際に必要とするのは、これらの特定の列(column2 = "value")を各レコードのすべての列値で一意にする方法です。 – typhoid
@typhoid:あなたの特定のニーズがこの場合どのようなものかはわかりませんが、シーケンスの使用を検討しましたか?シーケンスは、最大値を見つけるオーバーヘッドなしに一意の値を保証します。 'table.column'と' table.column2'の組み合わせを一意にする必要がある場合は、この列のペアにユニーク制約を追加することも検討してください。 – Wolf
オリジナルの最大IDを保持するPL/SQLのビット。これは、COL2の他の値のためCOL1と衝突しませんCOL1のためにあなたのユニークなIDを与える
declare
n pls_integer;
begin
select max(col1)
into n
from your table;
update your_table
set col1 = n + rownum
where col2 = 'value';
end;
:ROWNUMを使用すると、カウントをインクリメントする問題を解決します。
あなたが提供されたリンクで何が起こっているかに基づいて、私はあなたが本当にしたいことは、このだと思う:これはから始まる、ユニークな整数に「の値」のテーブルの各行を設定します
update your_table
set your_table.column = rownum
where your_table.column2 = 'value';
1.値はその値に対してのみユニークになります。現在の最大値にrownumを追加すると、既存の値よりも大きい値に設定できます(@ APCの答えに見られるように)。
この列に複数の挿入や更新が同時に発生する可能性がある場合は、これは安全ではないことに注意してください(1回限りの修正としてこれを行うのは大丈夫ですが、定期的なルーチン(コードでは使用しないでください)。その場合は、間違いなくシーケンスを使用する必要があります。
- 1. PLSQL変数
- 2. plsqlの動的%rowtype変数
- 3. R:forループ内のインクリメント変数をインクリメントする方法は?
- 4. grub2 howtoインクリメント変数
- 5. PLSQL SELECTステートメントで変数を使用
- 6. 2d変数のエントリをインクリメントする
- 7. PHPは変数をインクリメントする
- 8. インクリメント変数関数が
- 9. bashスクリプトのインクリメント数(変数)
- 10. 変数のインクリメント数($ _POST)
- 11. 整数変数をインクリメントしますか?
- 12. javascriptで変数をインクリメント
- 13. Simulinkで変数をインクリメント
- 14. PLSQL動的SQLバインド変数(名前で)
- 15. ループ変数を別の変数でインクリメントするためのC++ ++
- 16. 変数インクリメント付きスライディングウィンドウ - Python
- 17. Java:インクリメント変数の共有
- 18. Javascript複数インクリメント可変ソリューション
- 19. インクリメントINSERT文で変数
- 20. 変数名の自動インクリメント
- 21. PowerShell - 左手変数のインクリメント
- 22. PLSQLタイプの変更
- 23. PLSQL関数のヘルプ
- 24. センサーイベントの変更時の変数のインクリメント
- 25. スレッドによる静的変数のインクリメント
- 26. Pythonで変数とインクリメントの数値を連結する
- 27. 変数XSLの整数をインクリメントする方法
- 28. VB.netインクリメント変数は可能ですか?
- 29. JavaScriptが変数をインクリメントしない
- 30. 自動インクリメントで変数を表示
このテーブル内のtable.columnの最大値を見つけることによって、上記のvar1が設定されていることに言及しておきます。 – typhoid
同様の質問[ここ](http://stackoverflow.com/questions/4749669/variable-manipulation-in-oracle/4751469#4751469)です。 – Allan