|
|
|
|
|
для: Yakor
(10.11.2006 в 18:16)
| | Что то не понял.. В смылсе разбить на несколько?..
Допустим так...
Первый запрос INSERT....... для одной таблицы... После этого
Для второй UPDATE... И потом
Для третей UPDATE....
Получается всего три запроса, и если на каком то из них (не считая первого) по каким либо техническим причинам нет соединения с сервером MySQL, то не очень хорошо получается... | |
|
|
|
|
|
|
|
для: .dreamer
(10.11.2006 в 18:00)
| | можно попытаться разбить запрос на несколько... | |
|
|
|
|
|
|
|
для: cheops
(10.11.2006 в 15:25)
| | А как быть если количество записей может достигать сотен тысяч... И при этом хотелось бы использовать какой нибудь механизм против сбоев..? Ведь таблицы, поддерживающие транзакции требовательны к ресурсам и намного медленней.. (( | |
|
|
|
|
|
|
|
для: .dreamer
(10.11.2006 в 14:47)
| | cheops, Yakor, огромное спасибо! | |
|
|
|
|
|
|
|
для: Yakor
(10.11.2006 в 15:06)
| | Подробнее о транзакциях в MySQL можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=12795. | |
|
|
|
|
|
|
|
для: .dreamer
(10.11.2006 в 14:47)
| | P.S. myisam и isam не поддерживают транзакции. | |
|
|
|
|
|
|
|
для: .dreamer
(10.11.2006 в 14:47)
| | Есть, называется транзакция. (transaction)
«Транзакция» - это неделимая операция (серия операций), которая может быть либо выполнена полностью, либо не выполнена вообще. Если операция выполнилась, но частично, СУБД позаботится о том, чтобы из базы было «вычищено» все недоделанное.
http://bash.org.ru/quote.php?num=60492 =)))))))) | |
|
|
|
|
|
|
| Добрый день, уважаемые коллеги!
Вот моя ситуация...
Работаю с базой данных на MySQL и модулями к ней на PHP
Модули при определенных действиях пользователя выполняют несколько запросов -- допустим три запроса.. Первый INSERT а второй и третий UPDATE.. Причем если второй или третий запрос не будет выполнен, то это повлечет за собой появление некорректной информации в базе данных... Например, есть такая вероятность что на втором или третьем запросе может грохнуться сервер MySQL ... Конечно, такая ситуация маловероятна, но всё же не хотелось бы её упускать... Я пока пришёл к единственному решению -- ведению лога с возникшими ошибками при запросах, чтобы админ на основании него мог ручками подправить базу..
Так вот мои два вопроса...
1. Есть ли какие-нибудь механизмы в MySQL, которые бы обеспечивали выполнение нескольких запросов, а если один из них не выполнен по какой либо ошибке, чтобы все остальные тоже не выполнялись?..
2. Если нет, то как лучше обрабатывать такую ситуацию?..
Заранее спасибо за помощь! | |
|
|
|
|