как заставить SQLlite выбрать для поведения транзакции обновления в sqlalchemy

Вчера я работал с некоторыми материалами sqlalchemy, которым нужна концепция «выбрать … для обновления», чтобы избежать состояния гонки. Добавление .with_lockmode('update') в запрос работает с обработкой InnoDB и Postgres, но для sqlite мне приходится скрываться в

 if session.bind.name == 'sqlite': session.execute('begin immediate transaction') 

перед тем, как сделать выбор.

Кажется, сейчас это работает, но это похоже на обман. Есть лучший способ сделать это?

One Solution collect form web for “как заставить SQLlite выбрать для поведения транзакции обновления в sqlalchemy”

SELECT … FOR UPDATE OF … не поддерживается. Это понятно, учитывая, что механика SQLite в этой блокировке строк избыточна, поскольку вся база данных блокируется при обновлении любого ее бита. Тем не менее, было бы хорошо, если бы будущая версия SQLite поддерживала его по причинам взаимозависимости SQL, если ничего другого. Единственная необходимая функциональность – обеспечить блокировку «ЗАПИСИ», если она еще не установлена.

выдержка из http://sqlite.org/cvstrac/wiki?p=UnsupportedSql

Я думаю, вам нужно синхронизировать доступ ко всей базе данных. нормальный механизм синхронизации также должен применяться здесь блокировка файлов, синхронизация процессов и т. д.

  • Преобразование JSON в SQLite в Python - Как правильно сопоставить json-ключи с столбцами базы данных?
  • Запрос и базовая информация профилирования для Flask
  • Удаление строк из базы данных с помощью флагов python?
  • python no module с именем serial
  • Объединение всех баз данных SQLite с разными таблицами
  • Как экспортировать sqlite в CSV в Python без форматирования в виде списка?
  • Имя переменной в sqlite
  • Sqlite / SQLAlchemy: как применять внешние ключи?
  • Создание таблицы в базе данных Sqlite с помощью Genie?
  • Получить список значений полей из sqlite3 Python, а не кортежей, представляющих строки
  • Python sqllite3 с каркасом для бутылок в Google App Engine
  •  
    Interesting Posts for Van-Lav

    Как вычислить «EMD» для 2-х массивов numpy, т.е. «гистограмма», используя opencv?

    Преобразование строкового списка в float32 эффективно

    Как я могу упаковать приложение python с помощью внешних библиотек python?

    Как сделать тихий / тихий HTTPServer и вывод stderr BasicHTTPRequestHandler?

    Окно терминала Python появляется при запуске приложения pygame

    Как использовать winapi SetWinEventHook в python?

    OpenCV в облаке

    Задание интерпретатора Python для команды vim's: python

    Argparse: игнорировать множественные позиционные аргументы при указании необязательного аргумента

    Как легко хранить удобные для чтения на python структуры данных только для чтения в общей памяти

    Дата и время объединения фильтров в джанго

    интеграция ode в результаты python по сравнению с математикой

    Разделение вывода ps с помощью Python

    Как читать csv, хранящийся в S3 с помощью csv.DictReader?

    asyncio matplotlib show () все еще замораживает программу

    Python - лучший язык программирования в мире.