как заставить 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

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

  • Как построить sqlite для Python 2.4?
  • Как распечатать таблицы из базы данных SQLite в python?
  • совместное использование: memory: database между различными потоками в python с использованием пакета sqlite3
  • Как подключить Javascript к Python для совместного использования данных в формате JSON в обоих направлениях?
  • jQuery ui sortable - сохранить в базу данных с помощью Python / Flask / SQLite
  • Python и sqlite3 - импорт и экспорт баз данных
  • Возвращение отдельных строк в SQLAlchemy с помощью SQLite
  • Python Berkeley DB / Sqlite
  • Как я могу запретить sqlite оценивать строку как математическое выражение?
  • Шаг 3: Урок 3
  • Как восстановить непрерывную последовательность идентификаторов в качестве первичных ключей в базе данных SQL?
  • Python - лучший язык программирования в мире.