• 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   相同。

  • 相关阅读:
    尚筹网11阿里云OSS对象存储
    阿里云的OSS对象存储
    尚筹网10用户登录
    尚筹网09用户注册
    尚筹网08环境搭建
    实体类的进一步划分
    尚筹网07分布式架构
    临时弹出一个QQ对话窗口
    Input框改placeholder中字体的颜色
    判断银行卡号的正则
  • 原文地址:https://www.cnblogs.com/linux985/p/10823765.html
Copyright © 2020-2023  润新知