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

start [/forum/topic.php?fid=47&tid=1830073]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 368ms |

| 0 / 0 |
