Воскресенье
20.09.2020
06:45


Форма входа


Приветствую Вас Гость | RSS
Статьи по ORACLE, PL/SQL, Java и немного по SHELL (BASH),...
Главная Каталог статей Регистрация Вход
Главная » Статьи » ORACLE » ORACLE, PL/SQL

В чем различие между командами TRUNCATE, DELETE и DROP?

Команда DELETE используется для удаления одной или всех строк в таблице. Предложение WHERE используется для указания условия, по которому удалять строки. Если WHERE отсуствует, то удаляются все строки. После применения DELETE требуется выполнить COMMIT или ROLLBACK, для фиксации результатов транзакции или отката. При вызове DELETE сработают все триггеры таблицы.

SQL> SELECT COUNT(*) FROM emp;
  COUNT(*)
----------
        14
 
SQL> DELETE FROM emp WHERE job = 'CLERK';
4 rows deleted.
 
SQL> COMMIT;
Commit complete.
 
SQL> SELECT COUNT(*) FROM emp;
   COUNT(*)
----------
        10

DELETE не освобождает место после удаления. После выполения таблица фрагментируется, и при выполнении запросов на выборку свободное место будет так же просматриваться на получение строк.

TRUNCATE удаляет все строки из таблицы. Триггеры не сработают и операцию нельзя будет отменить. TRUNCATE работает быстрее, чем DELETE и не использует табличное пространство UNDO, как DELETE.

SQL> TRUNCATE TABLE emp;
TABLE truncated.
 
SQL> SELECT COUNT(*) FROM emp;
   COUNT(*)
----------
         0

Команда DROP удаляет таблицу из базы данных. Все строки таблицы, индексы и привелегии удалаются. DML триггеры не вызываются. Операция не может быть отменена.

SQL> DROP TABLE emp;
TABLE dropped.
 
SQL> SELECT * FROM emp;
SELECT * FROM emp
*
ERROR at line 1:
ORA-00942: TABLE or view does not exist

Начиная с Oracle 10g, после удаления, таблица может быть восстановлена. Например,

SQL> FLASHBACK TABLE emp TO BEFORE DROP;
Flashback complete.
 
истчник: http://all-oracle.ru
Категория: ORACLE, PL/SQL | Добавил: Akarak (22.05.2009)
Просмотров: 8843 | Рейтинг: 4.3/3
Всего комментариев: 0
Имя *:
Email *:
Код *:
Меню сайта

Категории раздела
ORACLE, PL/SQL [36]
Скрипты DDL [3]
Скрипты по управлению объектами
Встроенные функции SQL [2]
Встроенные функции SQL

Интересные сайты
  • sql.ru
  • all-oracle.ru
  • oranet.ru
  • oracloid.ru
  • forum.vingrad.ru

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Поиск

    Copyright MyCorp © 2020
    Используются технологии uCoz