Oracle11g oracle上的自动增量(是否需要添加此语句?)
我们需要为主键添加自动递增语句吗?如果是,它是如何管理的 我创建了一个如下表:Oracle11g oracle上的自动增量(是否需要添加此语句?),oracle11g,sequence,auto-increment,Oracle11g,Sequence,Auto Increment,我们需要为主键添加自动递增语句吗?如果是,它是如何管理的 我创建了一个如下表: 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)); 我没有为studioid定义类型,因为它将在我为这个表添加的studio_
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));
我没有为
studioid
定义类型,因为它将在我为这个表添加的studio_seq序列中赋值
我的问题是,我是否也应该在上表的任何地方写自动增量
谢谢。您必须像使用触发器一样使用触发器
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;
可能重复的
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;