ホームページ > データベース > mysql チュートリアル > 既存の Oracle 主キー列を自動インクリメントするにはどうすればよいですか?

既存の Oracle 主キー列を自動インクリメントするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-27 00:28:17
オリジナル
143 人が閲覧しました

How Can I Make an Existing Oracle Primary Key Column Auto-Increment?

既存の Oracle テーブル列の自動インクリメント変換

問題:

すでに主キーは、Oracle データベースで自動インクリメントするように構成されていますか?列はデータ型 VARCHAR2(9 BYTE) で作成されました。

解決策:

Oracle 11g 以前 (12c より前): シーケンスとトリガー

  1. シーケンスの作成: t_seq のようなシーケンスを、開始値 150111111 と増分ステップ 1 で確立します。
  2. トリガーの実装:列の値が NULL の場合に、シーケンスの次の値を列に移入する BEFORE INSERT トリガー。

Oracle 12c 以降: ID 列

  1. ID 列の使用: ID を定義するテーブル作成ステートメントの COLUMN。150111111 から始まり 1 ずつ増加します。

例:

CREATE TABLE t (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
);
ログイン後にコピー

アイデンティティの利点列:

  • シーケンスやトリガーを必要とせずに自動インクリメントの実装を簡素化します。
  • 指定された列の一意で連続した値を保証します。

追加情報:

  • Oracle は ID 列をサポートするシーケンス (ISEQ$$) を生成します。
  • ALL_TAB_IDENTITY_COLS ビューを使用して自動インクリメント情報を監視します。

以上が既存の Oracle 主キー列を自動インクリメントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート