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

sql_mode

一、介绍

sql_mode 是 MySQL 用于控制 SQL 语法行为和数据校验规则的一个系统变量。它会影响:

  • 插入非法或不完整数据时是否报错

  • GROUP BY 的严格性

  • 日期和时间的处理方式

  • 是否允许 NULL 自动转换为 0


二、查看当前的 sql_mode

SELECT @@sql_mode;

三、 设置 sql_mode

(1)临时设置(当前会话):

SET sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO';

(2)永久设置(修改配置文件):
编辑 MySQL 配置文件(如 /etc/my.cnfmy.ini):

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

四、常见的 sql_mode 选项

模式名作用
STRICT_TRANS_TABLES严格模式,非法数据插入会报错
NO_ZERO_IN_DATE禁止日期中出现零值(如 2025-00-15
NO_ZERO_DATE禁止日期完全为零(如 0000-00-00
ONLY_FULL_GROUP_BYGROUP BY 必须包含所有未聚合字段
ERROR_FOR_DIVISION_BY_ZERO除以 0 会报错(非 NULL)
NO_ENGINE_SUBSTITUTION如果存储引擎无效则报错
ANSI_QUOTES把双引号当作标识符而非字符串


✅ 建议设置(适用于生产环境)

STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO

 

相关文章:

  • Cesium使用glb模型、图片标记来实现实时轨迹
  • 采用轮询的方式实现在线人数
  • PC端直接打印功能(包括两张图片合并功能)
  • NodeJS Koa 后端用户会话管理,JWT, Session,长短Token,本文一次性讲明白
  • evo precision evaluation
  • 【分治法 容斥原理 矩阵快速幂】P6692 出生点|普及+
  • virtualbox 如何虚拟机ip固定
  • DFT测试之TAP/SIB/TDR
  • AudioRelay 0.27.5 手机充当电脑音响
  • Python: 操作 Excel折叠
  • VTK如何让部分单位不可见
  • js树形菜单功能总结
  • excel数据对比找不同:6种方法核对两列数据差异
  • 三十四、面向对象底层逻辑-SpringMVC九大组件之FlashMapManager接口设计哲学
  • 一文学会《使用Auto CAD2020绘制Allegro PCB板框》
  • Excel 表格内批量添加前缀与后缀的实用方法
  • RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
  • cnn卷积神经变体
  • 若依添加添加监听容器配置(删除键,键过期)
  • 什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
  • 网站统计代码/台州seo
  • 网站和微网站/竞价广告是怎么推广的
  • wordpress的tag链接url/武汉seo关键字优化
  • 网站建设论坛社区/网站seo优化报告
  • 做网站的价格 外贸/武汉百度
  • 做网站费用列入什么科目/网页优化包括什么