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 および後で
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');
注:
以上がOracle の既存の主キー列に自動インクリメントを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。