zoukankan      html  css  js  c++  java
  • mysql的unsigned属性负值报错和为0情况及mysql的严格模式

    最近发现在进行线程操作时,发现数据库的unsigned字段减为负数时并未报错而是变为0,因此去寻找解决方案,发现这和我的sql_mode有关。

    sql_mode MySQL服务器可以以不同的SQL模式来操作,并且可以为不同客户端应用不同模式。这样每个应用程序可以根据自己的需求来定制服务器的操作模式

    SELECT @@sql_mode

    用此可以查询当前mysql的数据库模式,一般情况下是显示STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION此三个属性,且是严格模式,

    即出现数据错误会立即报错.但我的mysql初始模式下是只有NO_ENGINE_SUBSTITUTION并不会约束字段的错误,即出现负值,数据库不是报错而是置0;

    下面即如何修改sql_mode

    SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

    其中global表示全局设置,同理用SESSION表示会话模式下即当前的会话情况下数据库模式。

    设置 GLOBAL变量时需要拥有权限,并且会影响从那时起连接的所有客户端的操作。

    设置SESSION变量只影响当前的客户端。任何客户端可以随时更改自己的会话 sql_mode值

    其他的情况还有很多种可以根据需求自己设置

    另附上找到的资料链接:https://www.cnblogs.com/linguoguo/p/6487097.html

  • 相关阅读:
    动态规划0-1背包问题
    在网页上加入运行代码的功能
    关于CSS基础框架的学习
    Hadoop综合大作业
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作,编写MapReduce作业
    爬虫大作业
    熟悉常用的HDFS操作
    数据结构化与保存
  • 原文地址:https://www.cnblogs.com/lin530/p/11755341.html
Copyright © 2011-2022 走看看