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