【有关触发器方面的问题】﹐进者有分﹗
我先在oracle8.1.7的sql*plus中用
CREATE TABLE "SYSTEM"."TEST_B"("NAME" CHAR(10) NOT NULL, "SCORE" NUMBER(3, 1))
建立了Table Test_B;
后又通过
CREATE OR REPLACE TRIGGER "SYSTEM"."TRIGGER_STATE" AFTER INSERT OR
DELETE OR
UPDATE OR
INSERT
ON "TEST_B" FOR EACH ROW
DECLARE
V_TOTAL NUMBER;
BEGIN
SELECT count(*) total_name INTO V_TOTAL from Test_B;
IF (V_TOTAL>5) THEN
DELETE FROM test_state;
INSERT INTO test_state_bak (total_name)
VALUES (V_TOTAL);
END IF;
END TRIGGER_STATE ;
建立了触发器TRIGGER_STATE;
但当执行INSERT INTO TEST_B(NAME) VALUES('f');时
在sql*plus中会出现如下的提示
ORA-04091: 表格 SYSTEM.TEST_B 正在变更中, 触发程序/函数无法检视它
ORA-06512: 在 "SYSTEM.TRIGGER_STATE", line 4
ORA-04088: 执行触发程序 'SYSTEM.TRIGGER_STATE' 时发生错误
请高手指点﹐谢谢﹗