3

Oracle の最新バージョンでは、auto_increment/identity スタイルの列を使用してテーブルを設定するための「標準」(ストアド プロシージャ、追加の CREATE 構文など) の方法がありますか、それとも手動でテーブルを作成し、シーケンスを作成する必要がありますか?そしてトリガーを作成します。

更新: Oracle には auto_increment の概念がないことを認識しています。私が興味を持っているのは、標準の Oracle ツールのいずれかがシーケンスとトリガーの作成を自動化しているかどうか、またはシーケンスとトリガー自体を作成するために必要なクエリ/コマンドを作成するために DBA が残されているかどうかです。

4

4 に答える 4

5

順序付けされた値を順次インクリメントしたい場合は、いいえSEQUENCEが唯一の選択肢です。

アイデンティティだけが必要な場合は、SYS_GUID()

于 2009-07-27T16:34:07.440 に答える
3

Oracle SQL Developerには、シーケンスから表の主キーを移入する「トリガーの作成または置換」コードを自動的に作成するオプションが用意されています。これを行うには、ナビゲーター ツリーから、テーブル名を右クリックし、[トリガー] > [作成 (シーケンスからの PK)] を選択します。ただし、シーケンスは作成されません。

于 2009-07-27T17:49:25.430 に答える
3

実際にはトリガーは必要ありません。テーブルに新しい行を入力するときに、シーケンスの次の値を参照するだけでかまいません。必要に応じて、複数のテーブル間で 1 つのシーケンスを共有することもできます。

于 2009-07-27T23:12:38.210 に答える
2

自動増加?いいえ、申し訳ありません。あなたはシーケンスに行き詰まっています(少し便利ではありますが、一般的にはより良いです)。

ただし、GUID は使用できます。Oracle には、代わりに使用できるSYS_GUID()関数があります。

于 2009-07-27T16:36:09.493 に答える