Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.02.2018, 02:41
|
|||
|---|---|---|---|
|
|||
Блокировка таблицы и транзакция: возможно ли? |
|||
|
#18+
Здравствуйте! Задача такова: нужно вставить одну строку в таблицу 1, и несколько строк в таблицу 2, причём сделать это атомарно (транзация). Сложность с том, что в таблице 1 каждая запись не должна противоречить другим записям по содержанию, а для этого нужно сначала извлечь записи из таблицы 1, проанализировать их, а потом уже принимать решение о добавлении новой записи. И разумеется, нельзя допускать вероятности того, что другой клиент изменит таблицу 1 после того как мы извлекли данные, но перед тем как мы добавили новую запись - содержание таблицы 1, в таком случае, может оказаться в противоречивом состоянии. Для предотвращения этого можно использовать блокировку таблицы 1 на чтение и запись (LOCK TABLES). Но потом нужно ещё добавить данные в таблицу 2, в рамках транзакции! Однако, насколько я понял, транзакция отменяет все блокировки, а блокировка завершает транзакцию... Возможно ли как-то реализовать такое поведение, чтобы и таблицу до завершения операции никто читать не мог, и чтобы транзакции работали? Может каким-то способом блокировки и транзакции можно заставить работать вместе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&tablet=1&tid=1830073]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 114ms |

| 0 / 0 |
