Помощь в учёбе, очень быстро...
Работаем вместе до победы

Транзакции. 
Описание СУБД MySQL

РефератПомощь в написанииУзнать стоимостьмоей работы

Наконец, в MySQL (для таблиц InnoDB) существует еще одна возможность определить транзакцию: операторы SAVEPOINT и ROLLBACK TO SAVEPOINT. Первый из них устанавливает именованную точку начала транзакции; второй позволяет в случае необходимости сделать откат к состоянию, в котором находилась база в момент установки именованной точки. Если выполняется оператор COMMIT или ROLLBACK без указания имени… Читать ещё >

Транзакции. Описание СУБД MySQL (реферат, курсовая, диплом, контрольная)

Под транзакцией понимают выполнение группы SQL-запросов как единой операции. Иными словами либо выполняются все эти запросы, либо (если на каком-то этапе произошел сбой) отменяются все результаты их работы. Транзакции выполняются независимо друг от друга, т. е. до завершения транзакции блокируется доступ к объектам базы данных, подвергаемым обработке.

Транзакции поддерживаются в MySQL для таблиц типа BDB и InnoDB.

Транзакции не могут быть вложенными, т.к. всякий оператор, начинающий новую транзакцию, завершает предыдущую.

По умолчанию MySQL работает в режиме автоматического завершения транзакций, т. е. после выполнения всякого запроса, модифицирующего данные, результат сразу записывается в базе. Для объединения нескольких операторов в транзакцию можно отключить этот режим, используя системную переменную AUTOCOMMIT:

mysql> SET AUTOCOMMIT=0;

После этого для завершения транзакции (и сохранения изменений) следует использовать оператор COMMIT, а для отмены всех действий — оператор ROLLBACK, например:

mysql> SET AUTOCOMMIT=0;

mysql> INSERT INTO table VALUES (val1, val2);

mysql> SELECT * FROM table;

mysql> ROLLBACK;

mysql> INSERT INTO table VALUES (val3, val4);

mysql> SELECT * FROM table;

mysql>COMMIT;

mysql> SET AUTOCOMMIT=1;

Объединить последовательность запросов в транзакцию можно также с использованием стандартного оператора SET TRANSACTION:

mysql> SET TRANSACTION.

mysql> INSERT INTO table VALUES (value1, value2);

mysql> SELECT * FROM table;

mysql>COMMIT;

Наконец, в MySQL (для таблиц InnoDB) существует еще одна возможность определить транзакцию: операторы SAVEPOINT и ROLLBACK TO SAVEPOINT. Первый из них устанавливает именованную точку начала транзакции; второй позволяет в случае необходимости сделать откат к состоянию, в котором находилась база в момент установки именованной точки. Если выполняется оператор COMMIT или ROLLBACK без указания имени точки возврата, все именованные точки удаляются. Например:

mysql> SAVEPOINT mypoint;

mysql> INSERT INTO table VALUES (value1, value2);

mysql> SELECT * FROM table;

mysql> ROLLBACK TO SAVEPOINT mypoint;

Показать весь текст
Заполнить форму текущей работой