要建一个触发器使增加记录后ID自动增加
CREATE OR REPLACE TRIGGER WATERLEVEL_INSERT AFTER INSERT
ON WATER.TB_P02_LEVEL FOR EACH ROW
begin
UPDATE WATER.TB_P02_LEVEL SET id=LEVEL_SEQUENCE.NEXTVAL WHERE ST_PS_NAME = :NEW.ST_PS_NAME AND DT_TIME=:new.DT_TIME;
end;
/提示 表WATER.TB_P02_LEVEL 发生了变化 触发器不能读它 ,网上查了一些没能得到解决,求教。
CREATE OR REPLACE TRIGGER WATERLEVEL_INSERT AFTER INSERT
ON WATER.TB_P02_LEVEL FOR EACH ROW
begin
UPDATE WATER.TB_P02_LEVEL SET id=LEVEL_SEQUENCE.NEXTVAL WHERE ST_PS_NAME = :NEW.ST_PS_NAME AND DT_TIME=:new.DT_TIME;
end;
/提示 表WATER.TB_P02_LEVEL 发生了变化 触发器不能读它 ,网上查了一些没能得到解决,求教。
触发表和被触发表是同一个表,无法锁定当前记录;
为何要在新增的同时要update表的id呢?那么你在insert的同时直接插入LEVEL_SEQUENCE.NEXTVAL 值不就好了吗;
CREATE OR REPLACE TRIGGER WATERLEVEL_INSERT before INSERT
ON WATER.TB_P02_LEVEL FOR EACH ROW
begin
SELECT LEVEL_SEQUENCE.NEXTVAL INTO :NEW.ID FROM DUAL;
end;
insert时直接写进去不就行了