sql >> Database >  >> RDS >> Oracle

Wat gebeurt er met afhankelijke triggers wanneer de tabel wordt verwijderd?

De tabel is verwijderd, maar bevindt zich in de prullenbak , waaruit het kan worden hersteld met behulp van de flashback-commando's (flashback ... before drop ]. De naam die wordt weergegeven als BIN$... is een beetje een winactie. De trigger wordt ook weergegeven met een BIN$... naam, wat aangeeft dat het ook in de prullenbak zit, en eventuele indexen ook.

U kunt de prullenbak legen om de voorwerpen erin permanent te verwijderen. Om een ​​tafel onmiddellijk te laten vallen, zonder dat deze naar de prullenbak gaat, kun je het trefwoord purge . toevoegen naar de drop commando, zoals uitgelegd in de documentatie . Dat zal ook alle indexen en triggers onmiddellijk laten vallen.

Als het niet automatisch werd verwijderd, zou de trigger sowieso irrelevant zijn, omdat je geen DML op de verwijderde tafel kunt uitvoeren, dus het kan nooit worden geactiveerd. Dat is als de tafel de trigger is tegen is gevallen. Je trigger is raar, hij wordt in dezelfde tabel ingevoegd. Normaal gesproken zou je een trigger op één tabel in je back-uptabel hebben (nou ja, voor één gebruik van triggers). In dat geval zou het verwijderen van de back-uptabel ongeldig maken de trigger op de live-tafel, maar zou hem niet laten vallen. Alleen het laten vallen van de live-tafel zou de trigger op de live-tafel laten vallen.




  1. Een overzicht van MariaDB Xpand (voorheen ClustrixDB)

  2. MariaDB-waarschuwing:'[email protected]' heeft beide ... Het wachtwoord wordt genegeerd

  3. JDBC:Oracle Application Server en The Network Adapter konden de verbindingsfout niet vaststellen

  4. Hoe maak je een alleen-lezen MySQL-gebruiker aan?