Starając się stworzyć spust nazwie ghazal_current_bef_upd_row
:Dlaczego nie mogę tworzyć wyzwalaczy dla obiektów należących do SYS?
create trigger ghazal_current_bef_upd_row
before update on ghazal_current
for each row
when (new.Rating < old.Rating)
begin
insert into ghazal_current_audit
(GhazalName,Old_Rating,New_Rating)
values
(:old.GhazalName,:old.Rating,:new.Rating);
end;
pojawia się następujący błąd:
Error report:
ORA-04089: cannot create triggers on objects owned by SYS
04089. 00000 - "cannot create triggers on objects owned by SYS"
*Cause: An attempt was made to create a trigger on an object owned by SYS.
*Action: Do not create triggers on objects owned by SYS.
Zarówno tabele nazwanych ghazals_current
i ghazal_current_audit
zostały stworzone przez SYS
. Dlaczego nie mogę utworzyć wyzwalacza w tabeli utworzonej przez SYS
.
Oracle nie zezwala na tworzenie wyzwalaczy na obiektach należących do SYS. –
Nie jest dobrą praktyką tworzenie wyzwalaczy opartych na użytkownikach w schemacie SYS. Dlaczego nie tworzyć tabel, wyzwalaczy i innych obiektów w nowym schemacie? – user75ponic