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

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

Linda Hamilton
リリース: 2025-01-03 05:35:39
オリジナル
1026 人が閲覧しました

How to Add Auto-Increment to an Existing Primary Key Column in Oracle?

Oracle の既存の列に自動インクリメントを追加する

Oracle で、すでに存在する既存の列に自動インクリメント機能を追加するにはテーブルの主キーを使用する場合は、使用している Oracle のバージョンに応じてさまざまな方法を使用できます。

Oracle 11g 以前の場合

  • トリガーを介して列をインクリメントするシーケンスを作成します。
CREATE SEQUENCE t_seq
  START WITH 150111111
  INCREMENT BY 1;

CREATE OR REPLACE TRIGGER t_trg
  BEFORE INSERT ON t
  FOR EACH ROW
  WHEN (new.id IS NULL)
  BEGIN
    SELECT t_seq.NEXTVAL
    INTO   :new.id
    FROM   dual;
  END;
ログイン後にコピー

Oracle 12c および後で

  • ID 列機能を使用します。
CREATE TABLE t
  (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
  );
ログイン後にコピー

データの挿入

一度自動インクリメント機能が設定されている場合は、次のようにテーブルにデータを挿入できます。

主キーとして ID という名前の列を持つ t という名前のテーブルを考え、150111111 から始まる自動インクリメントを構成したいとします。

Oracle でのシーケンス メソッドの使用11g:

INSERT INTO t(text) VALUES('auto-increment test 1');
ログイン後にコピー

Oracle 12c での ID 列メソッドの使用:

INSERT INTO t(text) VALUES('This table has an identity column');
ログイン後にコピー

注:

  • 用に作成されたシーケンス自動インクリメントされる主キーの名前は ISEQ$$ であり、次のコマンドを使用して検証できます。 USER_SEQUENCES ビュー。
  • ALL_TAB_IDENTITY_COLS ビューは、データベース内の ID 列に関する情報を提供します。

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

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