Если команда DELETE не содержит предложения WHERE, удаляются все строки таблицы.
Транзакции
Совокупность команд DML, результаты действия которых еще не стали постоянными, называется транзакцией или логической единицей работы. Транзакция начинается, когда сервер Oracle получает первую исполняемую команду SQL, и заканчивается, когда происходит одно из следующих событий:
· Команда COMMIT или ROLLBACK.
· Команда DDL (например, CREATE) или команда DCL.
· Обнаружение определенных ошибок - например, взаимной блокировки.
· Завершение сеанса работы в SQL*Plus пользователем.
· Аппаратный сбой или аварийный останов системы.
После завершения одной транзакции следующее выполняемое предложение SQL автоматически начинает следующую транзакцию.
Результаты выполнения команд DDL и DCL (см. таблица 1) фиксируются автоматически.
Команды явного управления транзакциями
| Команда
| Описание
|
| COMMIT
| Завершает текущую транзакцию, делая постоянными все произведенные изменения данных.
|
| SAVEPOINT имя
| Устанавливает в текущей транзакции маркер точки сохранения (savepoint).
|
| ROLLBACK[TO SAVEPOINT имя]
| Прекращает текущую транзакцию, отменяя все произведенные изменения в данных.
|
Команды неявной обработки транзакций
| Статус
| Причина
|
| Автоматическая
фиксация
| Команда DDL или DCL.
|
| Нормальное завершение сеанса работы в SQL*Plus без явной команды COMMIT или ROLLBACK.
|
| Автоматический откат
| Аварийное прекращение сеанса работы в SQL*Plus или системный сбой.
|
Пример.
Создание нового фильма. Все изменения данных становятся постоянными.
SQL> insert into film(filmid, namef, god_vip)
2 values( 11, 'Красный дракон','12.03.1988');