Django使用中常见的错误
Django Mysql SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
Django 執行makemigrations? 的時候報錯:
| 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") |
網上搜索解決方案如下:
setting.py--->DATABASES 添加
'OPTIONS':{'isolation_level':None}這個可能和我的mysql 版本有關,我的版本太低,用的mysql5.1
參考文章:http://bbs.51cto.com/thread-1550958-1.html
SET Transaction Isolation Level Read語法的四種情況
?
存儲過程:SET Transaction Isolation Level Read語法的四種情況
這幾天一直在弄存儲過程,現在在這里跟大伙共享下資料:SET?Transaction?Isolation?Level?Read?UNCOMMITTED
使用這句東東呢可以分為四種情況,現在就在這里逐一介紹:
第一種情況:
READ ? COMMITTED
這句的作用是:
指定在讀取數據時控制共享鎖以避免臟讀,但數據可在事務結束前更改,從而產生不可重復讀取或幻像數據。該選項是?? SQL ? Server ??的默認值。
第二種情況:
?READ ? UNCOMMITTED
這句的作用是:
執行臟讀或0級隔離鎖定,這表示不發出共享鎖,也不接受排它鎖。當設置該選項時,可以對數據執行未提交讀或臟讀;在事務結束前可以更改數據內的數值,行也可以出現在數據集中或從數據集消失。該選項的作用與在事務內所有語句中的所有表上設置?NOLOCK?相同。這是四個隔離級別中限制最小的級別。
第三種情況:
REPEATABLE ? READ
這句的作用是:
鎖定查詢中使用的所有數據以防止其他用戶更新數據,但是其他用戶可以將新的幻像行插入數據集,且幻像行包括在當前事務的后續讀取中。因為并發低于默認隔離級別,所以應只在必要時才使用該選項。
第四種情況:
SERIALIZABLE
這句的作用是:
?在數據集上放置一個范圍鎖,以防止其他用戶在事務完成之前更新數據集或將行插入數據集內。這是四個隔離級別中限制最大的級別。因為并發級別較低,所以應只在必要時才使用該選項。該選項的作用與在事務內所有?? SELECT ??語句中的所有表上設置?? HOLDLOCK ??相同。
轉載于:https://www.cnblogs.com/linux985/p/10823765.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Django使用中常见的错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot集成Redis实现排
- 下一篇: 使用css让页面变成黑白