0

PLSQL のテーブルの最初の列を自動インクリメントにしたいのですが、その列がそのテーブルの主キーになります。シリアル化と呼ばれるものを聞いたのですが、それについて適切な説明が得られませんでした。私はSQL Serverで働いていました。私はOracle(PLSQL)を初めて使用します。適切な解決策を見つけるのを手伝ってください。

4

1 に答える 1

2

シーケンスを作成する

CREATE SEQUENCE name_of_sequence
  START WITH 1
  INCREMENT BY 1
  CACHE 100;

トリガーを作成する

CREATE OR REPLACE TRIGGER trigger_name
  BEFORE INSERT ON table_name
  FOR EACH ROW
BEGIN
  SELECT name_of_sequence.nextval
    INTO :new.name_of_primary_key_column
    FROM dual;
END;

:new.name_of_primary_key_columnトリガーの構文は、11gではデュアルから選択するのではなく、直接割り当てることができるため、少し単純になります。12c には、これをさらに簡単にする追加の構文糖衣があることを理解していますが、私はそれをいじっていません。

于 2013-07-05T04:24:14.303 に答える