Podemos criar o gatilho do banco de dados em um evento de esquema concreto (ON SCOTT.SCHEMA) ou em todos os esquemas (ON SCHEMA). No entanto, também podemos usar ON DATABASE ao criar o gatilho do banco de dados. Qual a diferença entre eles? É alguma coisa herdada? ON DATABASE deve ser usado ao usar AFTER STARTUP ou AFTER STARTUP porque definitivamente está relacionado apenas ao banco de dados, mas o mesmo que é feito usando ON SCHEMA pode ser feito usando ON DATABASE, então qual é a diferença? Não consigo encontrar referências nos documentos do Oracle sobre isso.
relate perguntas
-
Backups de banco de dados no Oracle - Exportar o banco de dados ou usar outras ferramentas?
-
ORDER BY usando prioridades personalizadas para colunas de texto
-
Interface sqlplus confortável? [fechado]
-
Como encontrar as instruções SQL mais recentes no banco de dados?
-
Como posso consultar nomes usando expressões regulares?
Um gatilho
on schema
(sem esquema especificado) não dispara para todos os esquemas. Ele é acionado apenas quando a ação de acionamento é executada pelo usuário que possui esse acionador.Portanto, eles são bastante diferentes e não são intercambiáveis.
Aqui está um exemplo que configura uma tabela de registro e três
create
gatilhos:on database
, eon schema
para usuáriosfoo
ebar
:Agora vamos criar uma tabela no
foo
esquema de 's, comofoo
:E vamos criar uma tabela no
foo
schema de, comobar
:Aqui está o que registramos:
Então:
create trigger
"global" .after create on database
Esse gatilho também registrou todo o resto.foo
'safter create on schema
registrou a criação da tabela que foi feita porfoo
bar
O gatilho de registrou a criação da tabela que foi executada porbar
ele mesmo, embora tenhabar
criado uma tabela nofoo
esquema de.