Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

O que acontece com os gatilhos dependentes quando a tabela é descartada?


A tabela foi descartada, mas está na lixeira , do qual pode ser recuperado usando os comandos flashback (flashback ... before drop ]. O nome mostrado como BIN$... é um pouco de doação. O gatilho também está sendo exibido com um BIN$... name, indicando que também está na lixeira, e quaisquer índices também estarão.

Você pode esvaziar a lixeira para remover permanentemente os objetos nela. Para descartar uma tabela imediatamente, sem que ela vá para a lixeira, você pode adicionar a palavra-chave purge para o drop comando, conforme explicado na documentação . Isso também descartará todos os índices e gatilhos imediatamente.

Se ele não fosse descartado automaticamente, o gatilho seria irrelevante de qualquer maneira, já que você não poderia executar nenhum DML na tabela descartada, portanto, ele nunca poderia ser acionado. Isso se a tabela que o gatilho for contra caiu. Seu gatilho está estranho, está inserindo na mesma tabela. Normalmente, você teria um gatilho em uma tabela inserida em sua tabela de backup (bem, para um uso de gatilhos). Nesse caso, descartar a tabela de backup invalidaria o gatilho na mesa ao vivo, mas não o descartaria. Apenas descartar a mesa ao vivo descartaria o gatilho na mesa ao vivo.