Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2021, 15:07   #1
mikado3333
Пользователь
 
Регистрация: 25.09.2013
Сообщений: 32
По умолчанию Блокировка транзакции. Влияние подзапроса

Добрый день. "Просветите" пожалуйста.

@@transaction_ISOLATION = REPEATABLE-READ.(mysql)

1-я транзакция вызывает процедуру в которой есть обращение к таблице `data` в виде подзапроса

Код:
 
IF (SELECT `status` FROM `data` WHERE `index` = 123) <> 1 THEN  
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Ошибка'; 
END IF;
2-я транзакция запущенная на секунду позже не может осуществить INSERT/UPDATE в `data` - ожидает, как я понял из за блокировки таблицы `data`.

Переписав 1-ю транзакцию

Код:
 SELECT `status` INTO statusPD FROM `data` WHERE `index` = 123;
 
  IF statusPD <> 1 THEN  
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Ошибка'; 
  END IF;
блокировка не устанавливается.

Что происходит в скобках, что простой запрос блокирует всю таблицу на изменение?

Последний раз редактировалось mikado3333; 04.08.2021 в 15:08. Причина: Ошибка
mikado3333 вне форума Ответить с цитированием
Старый 19.08.2021, 08:48   #2
Gorychev
Участник клуба
 
Аватар для Gorychev
 
Регистрация: 08.03.2008
Сообщений: 1,604
По умолчанию

По конкретному вопросу ничего сказать не могу

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Влияние характера на судьбу? ts-alan Свободное общение 16 09.10.2015 09:17
влияние А на Б (CSS) iPozitiv HTML и CSS 0 05.07.2012 10:09
Формирование подзапроса Jrcfyf SQL, базы данных 3 06.02.2012 15:51
Взятие названий объектов из подзапроса euronymous SQL, базы данных 4 01.03.2010 06:34
Как выполнить два подзапроса SQL Caster SQL, базы данных 3 06.12.2009 11:21

Реклама для незарегистрированных, регистрация на форуме