是序列 例: create sequence user_id increment by 1 start with 1 maxvalue 99999;
举一个简单的触发器的例子,这里就利用了序列产生ID号,自动增加的create or replace trigger "RSLZ".家庭成员表_TRIGGER1 BEFORE INSERT OR UPDATE ON RSLZ.家庭成员表 FOR EACH ROW DECLARE iCounter 家庭成员表.NBGJZ%TYPE; cannot_change_counter EXCEPTION; BEGIN IF INSERTING THEN Select SEQ_家庭成员.NEXTVAL INTO iCounter FROM Dual; :new.NBGJZ := iCounter; END IF;
IF UPDATING THEN IF NOT (:new.NBGJZ = :old.NBGJZ) THEN RAISE cannot_change_counter; END IF; END IF;
EXCEPTION WHEN cannot_change_counter THEN raise_application_error(-20000, 'Cannot Change Counter Value'); END;
例:
create sequence user_id increment by 1 start with 1 maxvalue 99999;
BEFORE INSERT OR UPDATE ON RSLZ.家庭成员表
FOR EACH ROW
DECLARE
iCounter 家庭成员表.NBGJZ%TYPE;
cannot_change_counter EXCEPTION;
BEGIN
IF INSERTING THEN
Select SEQ_家庭成员.NEXTVAL INTO iCounter FROM Dual;
:new.NBGJZ := iCounter;
END IF;
IF UPDATING THEN
IF NOT (:new.NBGJZ = :old.NBGJZ) THEN
RAISE cannot_change_counter;
END IF;
END IF;
EXCEPTION
WHEN cannot_change_counter THEN
raise_application_error(-20000, 'Cannot Change Counter Value');
END;