テーブルスタッフの主キーを自動的にシークェンスしようとしました。Oracle DBのトリガー構文
入力:
CREATE SEQUENCE staff_idseq START WITH 1 INCREMENT BY 1 MAXVALUE 9999;
CREATE TABLE Staff
(
staffid number(4) not null primary key,
name varchar2(21) not null unique,
permission varchar2(10) not null
);
CREATE OR REPLACE TRIGGER staff_idtrig
BEFORE INSERT ON Staff
FOR EACH ROW WHEN (new.staffid is null)
BEGIN
SELECT staff_idseq.nextval INTO :new.staffid FROM dual;
END;
私はこれをロードするときには、シーケンスとテーブルを作成した後、それは私が行の最後にセミコロンを追加するのを忘れたかのように入力moreコマンドに私を要請します。たぶん私のクエリにいくつかのエラーがありますが、Ctrl + cを使わずに入力プロンプトから抜け出せなかったので、間違いを見つけられませんでした。
Oracle 12.1以降では、 'identityとして生成された' staffid number(4) 'を定義するか、またはシーケンスをデフォルト値として設定します。 –