0

主キーの自動インクリメント ステートメントを追加する必要がありますか? もしそうなら、それはどのように管理されていますか?

次のようなテーブルを作成しました。

CREATE TABLE STUDIO
(STUDIOID NOT NULL,
NAME VARCHAR2(20),
ADDRESS VARCHAR2(50),
PHONE NUMBER(11),
URL VARCHAR2(20),
CONSTRAINT STUDIO_STUDIOID_pk PRIMARY KEY(STUDIOID));

 CREATE SEQUENCE STUDIO_SEQ
  MINVALUE 1
  MAXVALUE 999999
  START WITH 1
  INCREMENT BY 1
  CACHE 10;

studioidこのテーブルに追加した studio_seq シーケンスで評価されるため、型は定義していません。

私の質問は、上記の表のどこかに自動インクリメントも書くべきですか?

ありがとう。

4

1 に答える 1

0

次のようなトリガーを使用する必要があります

create or replace TRIGGER STUDIO_trg 
BEFORE INSERT
ON STUDIO 
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
   tmpvar   NUMBER;
BEGIN
   tmpvar := 0;
   SELECT SEQUENCE STUDIO_SEQ.NEXTVAL
     INTO tmpvar
     FROM DUAL;

   :NEW.STUDIOID := tmpvar;
END TRIGGER STUDIO_trg;
于 2012-12-25T11:35:06.963 に答える