Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Co dzieje się z wyzwalaczami zależnymi po usunięciu tabeli?

Tabela została usunięta, ale znajduje się w koszu , z którego można go odzyskać za pomocą poleceń flashback (flashback ... before drop ]. Nazwa wyświetlana jako BIN$... jest trochę gratisem. Wyzwalacz wyświetla się również z BIN$... nazwa, wskazująca, że ​​również znajduje się w koszu, a wszelkie indeksy też będą.

Możesz opróżnić kosz, aby na stałe usunąć znajdujące się w nim obiekty. Aby natychmiast usunąć tabelę, bez trafiania do kosza, możesz dodać słowo kluczowe purge do drop polecenie, jak wyjaśniono w dokumentacji . Spowoduje to również natychmiastowe porzucenie wszelkich indeksów i wyzwalaczy.

Jeśli nie zostałby usunięty automatycznie, wyzwalacz i tak byłby nieistotny, ponieważ nie można wykonać żadnego DML na usuniętej tabeli, więc nigdy nie mógłby zostać uruchomiony. To znaczy, jeśli tabela, której wyzwalacz jest przeciwko jest upuszczany. Twój wyzwalacz jest dziwny, wstawia się do tej samej tabeli. Normalnie miałbyś wyzwalacz na jednej tabeli, wstawiaj ją do tabeli zapasowej (no cóż, na jedno użycie wyzwalaczy). W takim przypadku usunięcie tabeli kopii zapasowej unieważni spust na stole na żywo, ale go nie upuścił. Tylko upuszczenie tabeli na żywo spowoduje upuszczenie wyzwalacza na tabeli na żywo.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle XMLTable — pobieranie kolumny z węzła nadrzędnego

  2. gdzie są pliki klas DMS Oracle?

  3. Java:zbiór wyników jest pusty podczas wywoływania procedury składowanej z kursorem ref jako OUT

  4. Połącz się z bazą danych Oracle w VB

  5. Jak formatować liczby w notacji naukowej w Oracle