zoukankan      html  css  js  c++  java
  • mysql 数据库 自动截取数据的问题---mysql的sql_model的四种模式:宽松模式、严格模式

    mysql支持的sql_mode模式:ANSI、TRADITIONAL、STRICT_ALL_TABLES和STRICT_TRANS_TABLES。 

    ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。

    TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误。用于事物时,会进行事物的回滚。

    STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。只对支持事务的表有效。

    STRICT_ALL_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。对所有表都有效。

    问题描述:

    添加一个超长的文章的时候,文章内容字段被mysql截取后插入。

    debug:程序插入的sql没有问题。

    问题原因:mysql 使用了松散模式,造成自动截取。给debug带来困难,

    解决办法:

    1,开启mysql 严格模式,对开发有好处;

    2,换mysql的字段类型

    参考:

    下面贴一下mysql中和text相关的类型最大长度限制,请根据业务类型进行合理选择:

    TINYTEXT 最大长度是 255 (2^8 – 1) 个字符。

    TEXT 最大长度是 65535 (2^16 – 1) 个字符。

    MEDIUMTEXT 最大长度是 16777215 (2^24 – 1) 个字符。

    LONGTEXT 最大长度是 4294967295 (2^32 – 1) 个字符。

    通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为:

    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    如果查找不到sql-mode=则在[mysqld]下加入即可,推荐第二种方法,可以一劳永逸。

  • 相关阅读:
    Java POI 导出EXCEL经典实现 Java导出Excel
    Sublime Text 3 相关
    phonegap 4.2 环境搭建 及 项目创建 运行
    Js 简单分页(一)
    VC调试闪退解决办法
    查找一个数中1的个数
    居中详解
    解决ajax跨域请求 (总结)
    js实现css3的过渡,需要注意的一点(浏览器优化)
    reflow和repaint(摘录自张鑫旭的翻译)
  • 原文地址:https://www.cnblogs.com/duanxz/p/3770181.html
Copyright © 2011-2022 走看看