当同一个表中的某些行被更新时,我想更新字段data_aktualizacji。我创建了以下复合触发器。
CREATE OR REPLACE TRIGGER oferta_update_trigger
FOR UPDATE ON oferty
compound TRIGGER
id_oferty number(10);
AFTER EACH ROW IS
BEGIN
id_oferty := :new.idk;
END AFTER EACH ROW;
AFTER STATEMENT IS
BEGIN
UPDATE oferty SET data_aktualizacji = SYSDATE WHERE idk = id_oferty;
END AFTER STATEMENT;
END;
/当我想要更新一些记录时,我得到了以下错误。
SQL Error: ORA-00036: maximum number of recursive SQL levels (50) exceeded.如何解决这个问题?我认为创建了一些循环,但我不知道如何解决这个问题。
发布于 2018-03-04 07:52:09
更新oracle以将列更改为默认的sysdate
Alter table oferty alter column data_aktualizacji set default sysdate根本不需要触发器
发布于 2018-03-05 18:37:28
正如Ctznkane525所写的,您绝对应该使用default-value来执行此操作。
如果不想使用default,可以修改new.data_aktualizacji
CREATE OR REPLACE TRIGGER oferty_update_aktualizacji
BEFORE INSERT OR UPDATE
ON oferty
FOR EACH ROW
DECLARE
BEGIN
:new.data_aktualizacji:= sysdate;
END;https://stackoverflow.com/questions/49090109
复制相似问题