我知道(或者至少,我認爲,我知道),在標準的存在與交易處理時四種隔離級別:如何設置SQLite的隔離級別,使用Python
READ UNCOMMITTED - will allow everything
READ COMMITTED - will not allow dirty reads
REPEATABLE READ - will not allow dirty, non-repearable reads
SERIALIZABLE - will not allow dirty, non-repearable, phantom reads
我知道這一點, ,例如,用MySQL
打交道時,我可以這樣做:
cursor = db.cursor()
cursor.execute("SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED")
或者,如果我處理Postgre,我可以這樣做:
db.set_isolation_level(3) # corresponds to SERIALIZABLE
所以,我想知道,如果我能做些類似於處理SQLite
時的情況。我只看到:
db.isolation_level = None
,但我不知道這意味着什麼,我怎麼可以設置其他隔離級別(如果他們在SQLite
背景下存在)。謝謝!
謝謝,先生!我只想澄清一件小事--sqlite是否支持所有隔離級別?那麼,你的例子可以用於'read_commited',''repeatable read''和'serializable'嗎? – Jacobian
@Jacobian SQLite中的所有事務都是'SERIALIZABLE',除非它們使用共享緩存,並且在Martin注意到'read_uncommitted'設置爲true。 –