Я занимаюсь разработкой системы с использованием Django + Postgresql.Это мой первый раз с postgresql, но я выбрал его, потому что мне нужны были транзакции и функции внешнего ключа.
В определенном представлении я должен заблокировать свои таблицы с помощью AccessExclusiveLock, чтобы предотвратить любое чтение или запись во время этого просмотра.Это потому, что я делаю некоторые проверки всех данных, прежде чем сохранить / обновить свои объекты.
Я заметил противоречивую ошибку, которая время от времени происходит.Это из-за оператора выбора, который происходит непосредственно после оператора блокировки.Требуется наличие AccessShareLock.Я прочитал на сайте postgresql , что AccessShareLock конфликтует с AccessExclusiveLock.
Что я не могу понять, так это почему это происходит в первую очередь.Зачем postgresql запрашивать неявную блокировку, если она уже имеет явную блокировку, охватывающую эту неявную блокировку?Во-вторых, я не могу понять, почему это представление работает на 2 разных процессах postregsql?Разве они не должны быть собраны в одной транзакции?
Спасибо заранее.