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.mzph.cn/web/61587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据处理与统计分析——07-Pandas的concat连接、merge()合并、多表查询、内/外/自连接查询操作

pandas数据拼接 (1) DataFrame数据组合-concat连接 概述 连接是指把某行或某列追加到数据中, 数据被分成了多份可以使用连接把数据拼接起来把计算的结果追加到现有数据集,也可以使用连接 df对象与df对象拼接 行拼接参考: 列名, 列拼接参考: 行号 # todo 记忆: con…

EwoMail邮箱服务器软件安装教程

EwoMail是基于Linux的开源邮件服务器软件,集成了众多优秀稳定的组件,是一个快速部署、简单高效、多语言、安全稳定的邮件解决方案,帮助你提升运维效率,降低 IT 成本,兼容主流的邮件客户端,同时支持电脑和手机邮件客户端。 一、系统版本 二、关闭selinux vi /etc/sysconf…

【机器学习】机器学习的基本分类-监督学习-支持向量机(Support Vector Machine, SVM)

支持向量机是一种强大的监督学习算法,主要用于分类问题,但也可以用于回归和异常检测。SVM 的核心思想是通过最大化分类边界的方式找到数据的最佳分离超平面。 1. 核心思想 目标 给定训练数据 ,其中 是特征向量, 是标签&#xf…

Linux命令进阶·如何切换root以及回退、sudo命令、用户/用户组管理,以及解决创建用户不显示问题和Ubuntu不显示用户名只显示“$“符号问题

目录 1. root用户(超级管理员) 1.1 用于账户切换的系统命令——su 1.2 退回上一个用户命令——exit 1.3 普通命令临时授权root身份执行——sudo 1.3.1 为普通用户配置sudo认证 2. 用户/用户组管理 2.1 用户组管理 2.2 用户管理 2.2.1 …

Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录

前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 参考&…

《Python基础》之Python中可以转换成json数据类型的数据

目录 一、JSON简介 JSON有两种基本结构 1、对象(Object) 2、数组(Array) 二、将数据装换成json数据类型方法 三、在Python中,以下数据类型可以直接转换为JSON数据类型 1、字典(Dictionary&#xff09…

若依项目源码阅读

源码阅读 前端代码分析 代码生成器生成的前端代码有两个,分别是course.js用于向后端发送ajax请求的接口代码,另一个是index.vue,用于在浏览器展示课程管理的视图组件。前端的代码是基于vue3elementplus。 template用于展示前端组件别的标签…

C#tabcontrol如何指定某个tabItem为默认页

// Selects tabPage2 using SelectedTab.this.tabControl1.SelectedTab tabPage2; 参考链接 TabControl.SelectedTab 属性 (System.Windows.Forms) | Microsoft Learnhttps://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.tabcontrol.selectedtab?viewnetfr…

速盾:高防 CDN 可以配置客户端请求超时配置?

在高防 CDN(Content Delivery Network,内容分发网络)的运行管理中,客户端请求超时配置是一项重要的功能设定,它对于优化网络资源分配、保障服务质量以及维护系统稳定性有着关键意义。 一、客户端请求超时配置的概念 …

文件比较和文件流

文件比较和文件流 一、文本比较工具 diff1.基本用法1.1输出格式 2.常用选项 二、文件流1.文件的打开模式2.文件流的分类ifstreamofstreamfstrem区别 3.文件流的函数1. 构造函数2. is_open 用于判断文件是否打开3. open4. getline5. close6. get()7. read8. write9. put10. gcou…

【网络篇】HTTP知识

键入网址到网页显示,期间发生了什么? 浏览器第一步是解析URL,这样就得到了服务器名称和文件的路径名,然后根据这些信息生成http请求,通过DNS查询得到我们要请求的服务器地址,然后添加TCP头、IP头以及MAC头&…

【解决安全扫描漏洞】---- 检测到目标站点存在 JavaScript 框架库漏洞

1. 漏洞结果 JavaScript 框架或库是一组能轻松生成跨浏览器兼容的 JavaScript 代码的工具和函数。如果网站使用了存在漏洞的 JavaScript 框架或库,攻击者就可以利用此漏洞来劫持用户浏览器,进行挂马、XSS、Cookie劫持等攻击。 1.1 漏洞扫描截图 1.2 具体…

互联网基础

TCP/IP协议(协议组) 分层名称TCP/IP协议应用层HTTP,FTP,mDNS,WebSocket,OSC...传输层TCP,UDP网络层IP链路层(网络接口层)Ethernet,Wi-Fi... 链路层(网络接口层) 链路层的主要作用…

【分组去重】.NET开源 ORM 框架 SqlSugar 系列

💥 .NET开源 ORM 框架 SqlSugar 系列 🎉🎉🎉 【开篇】.NET开源 ORM 框架 SqlSugar 系列【入门必看】.NET开源 ORM 框架 SqlSugar 系列【实体配置】.NET开源 ORM 框架 SqlSugar 系列【Db First】.NET开源 ORM 框架 SqlSugar 系列…

hdlbits系列verilog解答(Exams/m2014 q4d)-89

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本节实现以下电路。 模块声明 module top_module ( input clk, input in, output out); 思路: 它的输入是一个组合逻辑异或门,将输入和输出异或后输入D触发器,这意味着输出与历史输出及当前输入都有关系,…

Cesium K-means自动聚合点的原理

Cesium K-means自动聚合点的原理 Cesium 是一个开源的 JavaScript 库,用于在 Web 环境中创建 3D 地球和地图应用。它能够处理地理空间数据,并允许开发者对大规模的地理数据进行可视化展示。在一些应用中,尤其是当处理大量地理坐标点时&#…

计算机网络课程设计:理论与实践全解析

标题:计算机网络课程设计:理论与实践全解析 计算机网络课程设计是计算机专业培养学生动手能力和理论联系实际的重要环节。通过设计并实现实际项目,学生能够更深刻地理解网络协议、网络通信及应用开发的核心技术。本文将从课程设计的选题、实施…

【代码随想录|贪心算法02】

122.买股票的最佳时机 题目链接https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii 好巧妙的一道题啊,做之前完全不会想到这种解法。 局部最优:收集每天正利润 全局最优:求得最大利润 这道题只让你返回最大的利润和&…

网络安全开源组件

本文只是针对开源项目进行收集,如果后期在工作中碰到其他开源项目将进行更新。欢迎大家在评论区留言,您在工作碰到的开源项目。 祝您工作顺利,鹏程万里! 一、FW(防火墙) 1.1 pfSense pfSense项目是一个免费…

将面具贴到人脸上的过程

使用OpenCV进行人脸面具贴合和变形以适应人脸的3D透视角度,通常需要以下步骤: 人脸检测:首先需要检测图像中的人脸位置。特征点检测:在检测到的人脸区域中,找到关键特征点,如眼睛、鼻子、嘴巴等。透视变换…