sql >> Database teknologi >  >> RDS >> Oracle

Hvad sker der med afhængige triggere, når bordet droppes?

Tabellen er blevet slettet, men den er i papirkurven , hvorfra den kan gendannes ved hjælp af flashback-kommandoer (flashback ... before drop ]. Navnet vises som BIN$... er lidt af en giveaway. Udløseren vises også med en BIN$... navn, hvilket indikerer, at det også er i papirkurven, og eventuelle indekser vil også være det.

Du kan tømme papirkurven for permanent at fjerne genstandene i den. For at droppe en tabel med det samme, uden at den går i papirkurven, kan du tilføje søgeordet purge til drop kommando, som forklaret i dokumentationen . Det vil også droppe eventuelle indekser og triggere med det samme.

Hvis den ikke blev droppet automatisk, ville triggeren alligevel være irrelevant, da du ikke kunne udføre nogen DML på det tabte bord, så den kunne aldrig udløses. Det er hvis bordet triggeren er imod er droppet. Din trigger er mærkelig, den indsættes i den samme tabel. Normalt ville du have en trigger på én tabel indsat i din backup-tabel (nå, for én brug af triggere). I så fald ville det ugyldiggøre at droppe sikkerhedskopieringstabellen aftrækkeren på live-bordet, men ville ikke tabe den. Kun at droppe live-bordet ville slippe udløseren på live-bordet.




  1. Parse fejl:syntaksfejl, uventet '' (T_ENCAPSED_AND_WHITESPACE)

  2. Opdatering af Salesforce-data med en SQL Server-markør

  3. Krypter/Dekrypter adgangskode i Oracle Function

  4. En underforespørgsel, der skal være uafhængig, er det ikke. Hvorfor?