当前位置: 首页 > article >正文

mysql数据库varchar截断问题

        用了这么多年mysql数据库,才发现varchar是可以截断的,而且是在我们线上数据库。个人觉得dba的这个设置是非常有问题的,用户往数据库里存东西,就是为了以后用的,截断了存放,数据不完整,就用不了了。
        看来以后用mysql数据库,还是要先测试下varchar的行为,做到心中有数。
        varchar截断,跟sql_mode的设置息息相关,我先来两个测试,一个是我们业务上使用的数据库,另一个是我手头linux上我安装的数据库。

1. 测试两把

  1. 业务上使用的数据库
    先看sql_mode
    在这里插入图片描述

    看看sql版本
    在这里插入图片描述

  2. 我手头linux上的数据库
    5.7.42版本
    在这里插入图片描述
    测试一把看看
    在这里插入图片描述

2. mysql的sql_mode 及其含义

项目ValueValue
1ONLY_FULL_GROUP_BY这个模式要求在使用GROUP BY时,所有未聚合的列都必须在GROUP BY子句中出现。这样可以避免出现不明确的结果。
2STRICT_TRANS_TABLES在这个模式下,MySQL 会严格执行数据的类型和值的检查。如果插入或更新的数据与表的定义不匹配,MySQL 将抛出错误而不是警告。
3NO_ZERO_DATE这个模式禁止将日期值设置为 ‘0000-00-00’,如果尝试插入这样的值,MySQL 将抛出错误。
4NO_ZERO_IN_DATE与上一个模式类似,但它只禁止在日期值的年、月或日部分中使用零。
5ERROR_FOR_DIVISION_BY_ZERO在这个模式下,如果一个算术表达式中出现了除以零的情况,MySQL 将抛出错误。
6NO_AUTO_CREATE_USER这个模式禁止使用GRANT语句自动创建新用户。
7NO_ENGINE_SUBSTITUTION如果你指定了一个不存在的存储引擎,MySQL 将抛出错误而不是使用默认的存储引擎。
8PIPES_AS_CONCAT在这个模式下,管道符号(
9ANSI_QUOTES启用这个模式后,你可以使用双引号来引用字符串,而不仅仅是单引号。
10IGNORE_SPACE这个模式允许在函数名和左括号之间有空格。
11STRICT_ALL_TABLES这是一个组合模式,包含了STRICT_TRANS_TABLES、NO_ZERO_IN_DATE、NO_ZERO_DATE、ERROR_FOR_DIVISION_BY_ZERO和NO_AUTO_CREATE_USER等多个模式。

3. 设置sql_mode的方式

设置sql_mode的方式
你可以通过以下 SQL 语句设置当前会话的 SQL 模式:

SET SESSION sql_mode ='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES';

或者,你也可以在 MySQL 配置文件中设置全局的 SQL 模式。例如,在my.cnf文件中添加以下行:

[mysqld]sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES"

http://www.kler.cn/a/419779.html

相关文章:

  • 瑞芯微方案主板Linux修改系统串口波特率教程,触觉智能RK3562开发板演示
  • 组合问题变式——选数(dfs)
  • 十,[极客大挑战 2019]Secret File1
  • Unity AssetBundles(AB包)
  • 音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现
  • 一种多功能调试工具设计方案开源
  • C# 编程效率提升指南:掌握算数运算、循环与方法封装
  • 【054A】基于51单片机指南针(LCD1602显示)【Keil程序+报告+原理图】
  • python创建临时文件
  • 爬虫—Scrapy 整合 ChromeDriver 实现动态网页拉取
  • oracle数据库的启动与关闭
  • mongodb下载与使用
  • 分布式协同 - 分布式系统的特性与互斥问题
  • TI毫米波雷达(七)——high accurary示例分析(二)
  • 微信小程序——文档下载功能分享(含代码)
  • MySQL基础(语句)知识复习 (除索引和视图)
  • Hive项目实战:大数据处理与分析
  • 算法:上楼梯(递归)升级版
  • 高原地区分布式光伏电站监测系统解决方案
  • Node.js 中的文件系统(fs)模块详解与代码示例
  • 鸿蒙技术分享:Navigation页面容器封装-鸿蒙@fw/router框架源码解析(三)
  • 人体热释电传感器
  • 利用OpenAI、LangChain和Streamlit进行智能数据分析和可视化
  • MATLAB - ROS2 ros2genmsg 生成自定义消息(msg/srv...)
  • SpringBoot 驱动在线家具商城设计与实现的深度探索
  • C++/Cli里重载winform的WndProc和ProcessCmdKey