Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 3
1

Транзакции в PDO и SELECT FOR UPDATE в MySQL

23.01.2014, 15:24. Показов 2841. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые участники форума, подскажите, пожалуйста, кто знает.

Если скрипт выполняет запрос SELECT FOR UPDATE и последующий UPDATE выбранной строки. Нужно ли оборачивать его в транзакцию?

По умолчанию уровень изоляции транзакций REPEATABLE-READ. Таблица MyISAM.
Если я правильно понял:
1. При запросах SELECT FOR UPDATE блокируются выбранные в них записи, что решает проблему "фантомов" с таким уровнем изоляции транзакций.
2. Если создавать транзакцию с помощью PDO, то результат запросов окажется в базе только после commit.

Если обернуть SELECT FOR UPDATE+UPDATE в транзакцию будет ли в этом случае работать пункт 1?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2014, 15:24
Ответы с готовыми решениями:

Использование операторов SELECT, DELETE и UPDATE в одном запросе в PDO
возможно ли в одном запросе к базе использовать операторы SELECT, DELETE и UPDATE если можно то как...

Вложенные транзакции в PDO
можно как-то их реализовать?

Php+mysql что будет если запрос SELECT выполнится быстрее чем UPDATE (в разных потоках)
Ребята. Вот объясните мне пожалуйста. Может ли быть такое?: Предположим, что открылось 2...

SELECT + Транзакции
Доброго времени суток! И так, в процессе разработки появилась задача записи информации в несколько...

2
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
23.01.2014, 17:33 2
Цитата Сообщение от junior_webdev Посмотреть сообщение
Если скрипт выполняет запрос SELECT FOR UPDATE и последующий UPDATE выбранной строки. Нужно ли оборачивать его в транзакцию?
FOR UPDATE не имеет смысла вне транзации. Без транзакции Вы не знаете, сколько и каких изменений было произведено другими клиентами в промежутке между SELECT и UPDATE.
Цитата Сообщение от junior_webdev Посмотреть сообщение
Таблица MyISAM.
MyISAM не поддерживает транзакции. Им пофиг, они своей жизнью живут. Надо InnoDB.
0
0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 3
23.01.2014, 20:15  [ТС] 3
Сделал InnoDB.
То есть, получается: открываем транзакцию, выполняем SELECT FOR UPDATE - получаем ID записи для UPDATE, делаем UPDATE, делаем COMMIT. Так правильно? И "фантомов" в этом случае точно не появится?
0
23.01.2014, 20:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2014, 20:15
Помогаю со студенческими работами здесь

update pdo placeholders
Приветствую вас форумчане. Помогите пожалуйста, пытаюсь на pdo обновить данные в базе, но там...

PHP PDO UPDATE неработает
вот запрос $sql = "UPDATE calculators SET name = :name , url = :url , height = :height WHERE...

C++ libpq select грязные транзакции
добрый вечер делаю приложение в асинхронном режиме и после insert выполняется select, но новой...

Select in PDO
Здравствуйте - кто нибудь скажет как запрос выбора делать на PDO ?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru