sql >> Databáze >  >> RDS >> Oracle

Co se stane se závislými spouštěči, když je tabulka zrušena?

Tabulka byla odstraněna, ale je v koši , ze kterého jej lze obnovit pomocí příkazů flashback (flashback ... before drop ]. Název zobrazený jako BIN$... je tak trochu dar. Spouštěč se také zobrazuje s BIN$... jméno, což znamená, že je také v koši a všechny indexy budou také.

Koš můžete vyprázdnit a trvale odstranit předměty v něm. Chcete-li tabulku odstranit okamžitě, aniž by šla do koše, můžete přidat klíčové slovo purge do drop příkaz, jak je vysvětleno v dokumentaci . To také okamžitě zruší všechny indexy a spouštěče.

Pokud by nebyl automaticky zrušen, byl by spouštěč stejně irelevantní, protože na zahozeném stole nemůžete provést žádné DML, takže by se nikdy nemohl spustit. To znamená, že tabulka, proti které je spouštěč, proti je upuštěno. Tvoje spoušť je divná, vkládá se do stejné tabulky. Normálně byste měli spouštěč na jedné tabulce vložit do záložní tabulky (dobře, pro jedno použití spouštěčů). V takovém případě by zrušení tabulky záloh zneplatnilo spoušť na živém stole, ale nespustí ji. Pouze zrušením aktivního stolu se spustí spouštěč na aktivním stole.




  1. Poddotazy TypeORM

  2. Načítání data na serveru SQL, CURRENT_TIMESTAMP vs GetDate()

  3. mysql pomalý na první dotaz, pak rychlý pro související dotazy

  4. mysql ERROR 2002 (HY000):Nelze se připojit k místnímu serveru MySQL přes soket '/var/run/mysqld/mysqld.sock' (2)