Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Блокировка таблицы и транзакция: возможно ли? / 1 сообщений из 1, страница 1 из 1
09.02.2018, 02:41
    #39599452
RedCatX
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировка таблицы и транзакция: возможно ли?
Здравствуйте!

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


Просмотр
0 / 0
Close
Debug Console [Select Text]