![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Plavozont |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Мне нужно выполнить два оператора UPDATE, если не сработал первый - не выполнять второй, если не сработал второй - не выполнять первый. Как это сделать ? Запросы являются параметрами функции, поэтому не срабатывать они будут из-за синтаксической ошибки или неправильных названий таблиц/полей как правило.
Это сообщение отредактировал(а) Plavozont - 16.12.2011, 12:30 --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 8 Всего: 31 |
Не выполняйте их вообще.
Все верно - ни один не работает - ни один не запускается. Если серьезно - у вас противоречие в условии. Нельзя узнать сработал ли запрос пока его не запустишь. |
|||
|
||||
Akina (Online) |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Оберни их в одну транзакцию.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Plavozont |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Таблицы в основном MyISAM, не пойдёт... Есть какой-то способ помимо транзакций, для таблиц не поддерживающих транзакции Здесь в котором мало примеров и я ничё не понял. Может быть также есть способ проверить обречён ли запрос на провал ? Это сообщение отредактировал(а) Plavozont - 16.12.2011, 15:40 --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
Akina (Online) |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Угу... бэкап перед запросом и восстановление из него, если ошибка. Устроит?
Распечатать его и сходить к бабке-гадалке. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 4 Всего: 67 |
Просто проверить синтаксис можно, например, выполнив explain (если он работает для update)
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Plavozont |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
explain не работает для update
А вы если ничего умного предложить не можете то и не умничайте --------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
Akina (Online) |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Plavozont, Вы желаете сделать то, что В Ваших конкретных условиях сделать нельзя. И тем не менее упорствуете... "А может, всё-таки можно, мне же очень надо!" ... не тот случай.
Перейдите на транзакционный движок. Это гарантирует решение поставленной задачи. Или, если устроит, перейдите на полное триггерное журналирование изменений - правда, оно потребует организации монопольного доступа и блокировки всей БД по записи. Да и ручной откат изменений - та ещё задачка. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Plavozont |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 182 Регистрация: 14.4.2008 Репутация: нет Всего: нет |
Akina, большое спасибо, жаль что такой облом. Казалось бы такая банальная штука как проверка синтаксиса / правильности названий таблиц/полей и не предоставлена во власть пользователя.
--------------------
Fortunately, the circumstances under which those words are useful run out at a relatively low level of multiplicity. |
|||
|
||||
Akina (Online) |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 106 Всего: 454 |
Синтаксический контроль текста запроса как раз провести можно - правда, не для всех типов запросов... это делает explain. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |