如果是2层结构, 我也不大用触发器. 基本上是在存储过程中控制
比如,通常用TRIGGER来控制自增字段,
CREATE TRIGGER MYTRIGGER
BEFORE INSERT ON MYTABLE
FOR EACH ROW
BEGIN
SELECT SEQ_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
...
END;
但我会更愿意在存储过程中写(因为几乎所有表的纪录添加/修改/删除都是由过程来完成的):
CREATE PROCEDURE ADDNEW
(NEWVAL MYTABLE%ROWTYPE
ORA_STAT OUT VARCHAR2)
IS
BEGIN
INSERT INTO MYTABLE
VALUES (SEQ_ID.NEXTVAL, NEWVAL.FIELD2,NEWVAL.FIEL3, ....);
ORA_STAT := 'SUCCESS';
EXCEPTION
WHEN ...
ORA_STAT := SQLERRM;