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

MySQL字段设置的varchar长度小于数据长度自动截取丢弃超出的长度而不是报错?

MySQL字段设置的varchar长度小于数据长度自动截取丢弃超出的长度而不是报错?

事情是这样的,我们一个订单表存放了商品的快照信息其中快照信息存储的是json格式商品信息,当查看订单是报错了,发现我们后端服务查询到订单的快照信息进行json转Java实体时报错了,是因为json格式错误,后竟发现json格式并不完整,而该字段存储的字符串正好是设置的大小VARCHAR(4000) DEFAULT NULL

原来在数据库中,当数据长度超出字段设置的 VARCHAR 长度时,行为会取决于具体的数据库系统和其配置。在MySQL中,这个行为受到 SQL模式(sql_mode) 的控制。

不严格模式 (默认):

在默认情况下,或者在非严格模式(NO_STRICT)下,当插入长度超出 VARCHAR 字段定义的字符串时,MySQL会自动截断超出的部分,并发出一个警告,而不是错误。这种行为允许操作继续执行,但不保证数据完整性。

严格模式(STRICT 模式)

当MySQL数据库设置为 严格模式(STRICT_TRANS_TABLES 或 STRICT_ALL_TABLES) 时,如果尝试插入或更新超过设定长度的数据,将会导致错误,并阻止该事务进行。这保证了数据的完整性,因为不允许存储部分数据。

http://www.lryc.cn/news/408718.html

相关文章:

  • Linux|多线程(三)
  • 智能合约中如何返回mapping
  • nginx的学习(二):负载均衡和动静分离
  • 普中51单片机:DS1302时钟芯片讲解与应用(十)
  • Preact:轻量级替代React的选择
  • 全栈嵌入式C++、STM32、Modbus、FreeRTOS和MQTT协议:工业物联网(IIoT)可视化系统设计思路(附部分代码解析)
  • Greenplum数据库中的数据倾斜问题及处理方法
  • 缓存设计理论
  • IDEA-安装插件 驼峰下划线转换
  • 乾坤: 微前端项目切换时样式闪动(从无样式变为正常样式需要等 css chunk 文件加载完成, 加载延时受网速影响)
  • 《电子元器件之固态电容》
  • PLC 远程下载网关
  • 【Django】 读取excel文件并在前端以网页形式显示-安装使用Pandas
  • 自动控制:带死区的PID控制算法
  • 橙单后端项目下载编译遇到的问题与解决
  • EasyExcel 初使用—— Java 实现多种写入 Excel 功能
  • MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较
  • 手把手教你FL Studio 24.1.1.4234中文破解安装激活图文激活教程
  • 使用Spring Boot与Spire.Doc实现Word文档的多样化操作
  • 从食堂采购系统源码到成品:打造供应链采购管理平台实战详解
  • 在window将Redis注册为服务
  • PHP商城案例
  • Linux:bash在被调用时会读取哪些启动文件?
  • 帆软FineReport之替换函数
  • Redis的应用场景及类型
  • 【图像处理】不智能的目标识别
  • 《500 Lines or Less》(5)异步爬虫
  • Transformer!自注意力机制的高层级理解Attention Is All You Need!
  • 关于使用Postman在请求https网址没有响应,但是用浏览器有响应的问题解决
  • 【React 】开发环境搭建详细指南