我们是否需要为主键添加自动增量语句?如果是的话,它是如何管理的?
我创建了一个表格,如:
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序列中进行估值。
我的问题是,我是否还要在上表中的任何位置写自动增量?
感谢。
答案 0 :(得分: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;