При роботі з базами даних, оператор DROP
є поширеним способом для видалення об'єктів, таких як таблиці чи подання. Однак в Oracle базах даних клаузула PURGE
надає потужний нюанс щодо того, як об'єкти обробляються під час видалення.
Основи DROP
в Oracle
В Oracle, коли ви видаляєте таблицю, вона не видаляється миттєво з бази даних. Замість цього вона переміщається в Кошик, де її можна відновити, якщо потрібно. Ця функція забезпечує захист від випадкових видалень, дозволяючи вам відновити об'єкт за допомогою команди FLASHBACK
.
Ось стандартний синтаксис для видалення таблиці без PURGE
:
DROP TABLE table_name;
Ця операція переміщає таблицю в Кошик, забезпечуючи, щоб дані не були безповоротно втрачені.
Що робить PURGE
?
Клаузула PURGE
гарантує, що об'єкт, який видаляється, буде безповоротно видалений, оминаючи Кошик. Після того, як таблиця видалена з PURGE
, вона не може бути відновлена, а простір, який вона займала, звільняється негайно.
Ось синтаксис з клаузулою PURGE
:
DROP TABLE table_name PURGE;
Основні відмінності між DROP
та DROP ... PURGE
Навіщо використовувати PURGE
?
- Безповоротне видалення: Якщо ви впевнені, що об'єкт більше не потрібен,
PURGE
гарантує, що не залишиться жодних слідів. - Негайне звільнення простору: Якщо питання зберігання є критичним,
PURGE
звільняє простір без очікування очищення Кошика. - Чутливі дані: Для чутливих даних
PURGE
гарантує, що вони не можуть бути випадково відновлені.
Приклади
- Видалення таблиці без
PURGE
DROP TABLE employees;
- Таблиця
employees
переміщається в Кошик. - Її можна відновити за допомогою:
FLASHBACK TABLE employees TO BEFORE DROP;
- Видалення таблиці з
PURGE
DROP TABLE employees PURGE;
- Таблиця
employees
безповоротно видаляється. - Відновлення неможливе.
Висновок
Клаузула PURGE
в операторі DROP
Oracle надає механізм для безповоротного видалення, оминаючи захист Кошика. Хоча це потужний інструмент для ефективного управління простором та обробки чутливих даних, його слід використовувати обережно, оскільки відновлення неможливе.
При вирішенні, чи використовувати PURGE
, ретельно розгляньте ваш випадок: чи потрібен вам захист Кошика, чи ви впевнені, що об'єкт більше не потрібен?
Зрозумівши нюанси між DROP
та PURGE
, ви зможете ефективніше керувати своїми об'єктами бази даних і уникнути непотрібних помилок.
Перекладено з: Understanding the PURGE Clause in the DROP Statement