sql >> Databasteknik >  >> RDS >> Oracle

Vad händer med beroende utlösare när tabellen släpps?

Tabellen har tagits bort, men den ligger i papperskorgen , från vilken den kan återställas med hjälp av flashback-kommandon (flashback ... before drop ]. Namnet visas som BIN$... är lite av en giveaway. Utlösaren visas också med en BIN$... namn, vilket indikerar att det också finns i papperskorgen, och eventuella index kommer också att vara det.

Du kan tömma papperskorgen för att permanent ta bort föremålen i den. För att släppa en tabell omedelbart, utan att den hamnar i papperskorgen, kan du lägga till nyckelordet purge till drop kommandot, som förklarat i dokumentationen . Det kommer också att ta bort alla index och triggers omedelbart.

Om det inte tappades automatiskt skulle triggern ändå vara irrelevant, eftersom du inte kunde utföra någon DML på det tappade bordet, så det kunde aldrig avfyras. Det är om tabellen utlösaren är emot är tappad. Din trigger är konstig, den infogas i samma tabell. Normalt skulle du ha en trigger på en tabell infoga i din backup-tabell (nåja, för en användning av triggers). I så fall skulle ett släppa backuptabellen ogiltigförklara avtryckaren på livebordet, men skulle inte tappa den. Bara om du släpper livebordet skulle triggern släppas på livebordet.




  1. Hur man får värde från en tabellbas på Preference

  2. Hur man sparar framtida(!) datum i en databas

  3. Hur man fixar den nya datatypen som orsakar problem för MS Access

  4. Använd TOP eller Rank när du hittar de första eller de flesta observationerna