Django使用中常见的错误
Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
Django 執(zhí)行makemigrations? 的時(shí)候報(bào)錯(cuò):
| 1 | django.db.utils.ProgrammingError: (1064,?"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED' at line 1") |
網(wǎng)上搜索解決方案如下:
setting.py--->DATABASES 添加
'OPTIONS':{'isolation_level':None}這個(gè)可能和我的mysql 版本有關(guān),我的版本太低,用的mysql5.1
參考文章:http://bbs.51cto.com/thread-1550958-1.html
SET Transaction Isolation Level Read語(yǔ)法的四種情況
?
存儲(chǔ)過(guò)程:SET Transaction Isolation Level Read語(yǔ)法的四種情況
這幾天一直在弄存儲(chǔ)過(guò)程,現(xiàn)在在這里跟大伙共享下資料:SET?Transaction?Isolation?Level?Read?UNCOMMITTED
使用這句東東呢可以分為四種情況,現(xiàn)在就在這里逐一介紹:
第一種情況:
READ ? COMMITTED
這句的作用是:
指定在讀取數(shù)據(jù)時(shí)控制共享鎖以避免臟讀,但數(shù)據(jù)可在事務(wù)結(jié)束前更改,從而產(chǎn)生不可重復(fù)讀取或幻像數(shù)據(jù)。該選項(xiàng)是?? SQL ? Server ??的默認(rèn)值。
第二種情況:
?READ ? UNCOMMITTED
這句的作用是:
執(zhí)行臟讀或0級(jí)隔離鎖定,這表示不發(fā)出共享鎖,也不接受排它鎖。當(dāng)設(shè)置該選項(xiàng)時(shí),可以對(duì)數(shù)據(jù)執(zhí)行未提交讀或臟讀;在事務(wù)結(jié)束前可以更改數(shù)據(jù)內(nèi)的數(shù)值,行也可以出現(xiàn)在數(shù)據(jù)集中或從數(shù)據(jù)集消失。該選項(xiàng)的作用與在事務(wù)內(nèi)所有語(yǔ)句中的所有表上設(shè)置?NOLOCK?相同。這是四個(gè)隔離級(jí)別中限制最小的級(jí)別。
第三種情況:
REPEATABLE ? READ
這句的作用是:
鎖定查詢中使用的所有數(shù)據(jù)以防止其他用戶更新數(shù)據(jù),但是其他用戶可以將新的幻像行插入數(shù)據(jù)集,且幻像行包括在當(dāng)前事務(wù)的后續(xù)讀取中。因?yàn)椴l(fā)低于默認(rèn)隔離級(jí)別,所以應(yīng)只在必要時(shí)才使用該選項(xiàng)。
第四種情況:
SERIALIZABLE
這句的作用是:
?在數(shù)據(jù)集上放置一個(gè)范圍鎖,以防止其他用戶在事務(wù)完成之前更新數(shù)據(jù)集或?qū)⑿胁迦霐?shù)據(jù)集內(nèi)。這是四個(gè)隔離級(jí)別中限制最大的級(jí)別。因?yàn)椴l(fā)級(jí)別較低,所以應(yīng)只在必要時(shí)才使用該選項(xiàng)。該選項(xiàng)的作用與在事務(wù)內(nèi)所有?? SELECT ??語(yǔ)句中的所有表上設(shè)置?? HOLDLOCK ??相同。
轉(zhuǎn)載于:https://www.cnblogs.com/linux985/p/10823765.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Django使用中常见的错误的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot集成Redis实现排
- 下一篇: 使用css让页面变成黑白