使用phpmyadmin导出sql的时候,常常会出现SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";的语句。通过看sql手册,明白了这里

设置的含义。

那么可以回答几个疑惑性问题了
一、设置sql模式有什么作用?会产生什么方面的影响?
模式定义mysql会支持哪些sql语法。以及应执行哪种数据验证检查。最终达到的目标:适应在不同环境中适应mysql,因为可

以根据各自的程序不同设置对于德sql操作模式。输入如下语句可以知道,当前使用的sql模式,select @@sql_mode

比如,NO_AUTO_VALUE_ON_ZERO模式下,根据字面意思,没有自动增量为0的值。

二、做一个实验:

步骤1.SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"  您运行的 SQL 语句已经成功运行了。
2. SELECT @@sql_mode
@@sql_mode
 为什么结果是空呢?没有设置成功吗?
原因分析:可能是是在phpmyadmin中运行语句的。因为我在mysql客户端运行结果,能够看到设置后的sql模式结果。此时在

phpmyadmin中却看不到设置好的模式。那一项的结果是空。

3.插入一条数据
INSERT INTO `julebu`.`matches` (
`MATCHNO` ,
`TEAMNO` ,
`PLAYERNO` ,
`WON` ,
`LOST`
)
VALUES (
'0', 'gg', 'ghh', 'hhh', 'hh'
);

主键字段的值插入的值是0.结果看到,保存的并不是0,而变成了1。也正好说明了sql模式"NO_AUTO_VALUE_ON_ZERO"起作用

了。不允许自动增量的值为0(手册:MySQL遇到0值一般会生成新的序列号).经过进一步插入数据测试,注意理解这里的新序

列号:是生成新的序列号。遇到0,假如原来表中已经有个序列号是3,那么就会生成4.接着原来序列号的自增。

结束//

知识收集:

默认sql模式是为空的。非严格模式,难怪我们平时,插入一个字段,数据超过字段,不会报错,会自动截断存储。

使用严格模式(STRICT_TRANS_TABLES),插入的数据超过字段长度,比如常见的char字段类型,会报错,ERROR 1406 (22001): Data too long for column 'testchar' at row 1。

还有日期类型的字段。如果设置的值超过日期大小,也不会报错。

经验:mysql之所以默认设置为空。非严格模式,也是有道理的。这样容错性强。给一个设置级别给大家,也是可以方便自己根据需要来调试,一般是不太会使用严格模式的,严格模式造成程序很难跑起来,遇到点超过字段长度的错误,都会影响运行。

看mysql手册中模式(SQL_MODE)学到的知识相关推荐

  1. mysql语句中变量 c#_C#基础知识-您的第一个C#程序,类型和变量以及流控制语句...

    mysql语句中变量 c# 建立 (Setup) LinqPad is an .NET scratchpad to quickly test your C# code snippets. The st ...

  2. mysql mode_MYSQL中的sql_mode模式

    mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等!我们可以通过以下方式查看当前数据库使用的sql_mode: mysql>select @@s ...

  3. mysql mode_mysql中的sql_mode

    ANSI模式 宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告. TRADITIONAL模式 严格模式,当向mysql数据库插入数据时,进行数据的 ...

  4. mysql temporary_MySQL中的两种临时表

    http://mysql.taobao.org/monthly/2016/06/07/ 外部临时表 通过CREATE TEMPORARY TABLE 创建的临时表,这种临时表称为外部临时表.这种临时表 ...

  5. mysql语句中的sum(if(exp1,exp2,exp3))

    2019独角兽企业重金招聘Python工程师标准>>> http://blog.csdn.net/wuhuagu_wuhuaguo/article/details/78367735 ...

  6. 从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  7. mysql大表数据抽取_从云数据迁移服务看MySQL大表抽取模式

    摘要:MySQL JDBC抽取到底应该采用什么样的方式,且听小编给你娓娓道来. 小编最近在云上的一个迁移项目中被MySQL抽取模式折磨的很惨.一开始爆内存被客户怼,再后来迁移效率低下再被怼.MySQL ...

  8. servlet+javabean+jdbc+mysql基于MVC模式的课件管理系统,有三个表的增删改查和课件搜索、课件上传、课件下载功能, 具体功能请看界面上的导航条

    源码支持在idea.eclipse.myeclipse运行,数据库采用MySQL数据库,项目采用mvc设计模式开发,页面采用jsp+html+css+js完成. servlet+javabean+jd ...

  9. 关于mysql叙述中错误的是什么_以下关于MySQL的叙述中,错误的是(1.0分)_学小易找答案...

    [单选题]学生表tb_student包含学号sno.学生姓名sname.性别sex.年龄age.所在院系dept.籍贯native等字段,其中age为整型,其余字段均为字符型.现插入一条计算机学院学生 ...

  10. mysql schema 保存数据_在MySQL中,所有触发器的定义都保存在information_schema数据库下的()表中。_学小易找答案...

    [单选题]如何将英制 的零件转为公制的零件 ( ). [判断题]连续选择边线创建倒角时,不能单独修改某一边线的倒角大小 [判断题]创建筋特征时截面必须是闭和的 [填空题]Hibernate 的会话接口 ...

最新文章

  1. centos7 firewall 防火墙 命令
  2. python-range用法
  3. RQNOJ 83 魔兽世界
  4. svn update命令小记
  5. Windows Azure Storage论文解读
  6. python的std函数_Python numpy.nanstd函数方法的使用
  7. Android Studio 导入新工程项目
  8. 云原生之上,亚马逊云科技发布多项容器与Serverless服务,持续发力现代化应用
  9. 计算机二级循环队列知识点,考点!计算机二级考试公共基础知识冲刺复习笔记:栈、队列和循环队列...
  10. Magento : Make 'Continue Shopping' button redirect to the product index page
  11. java数组元素的输入_java基础--键盘输入一个数,输出数组中指定元素
  12. 如果看到消息“此计算机无法读取您插入的磁盘”,该怎么办?
  13. 酷狗音乐linux版_酷狗音乐PC版 9.1新版本初体验
  14. 20个你可能不知道的 Linux 网络工具
  15. SCN和Checkpoint
  16. CCAA 信息安全管理体系 考试大纲及重点题目记忆
  17. 程序设计——票务管理系统
  18. 基于小程序同城交易系统设计 同城小程序校园二手交易小程序毕业设计课题选题毕设毕业设计论文
  19. ROS2教程(入门级):创建ROS2工作空间
  20. python将图片转换成二进制文本_python将图片文件转换成base64编码的方法

热门文章

  1. Vivado封装自定义IP
  2. c 连接mysql通用_用C语言操作MySQL数据库的通用方法
  3. 蓝屏代码大全_电脑出现蓝屏怎么找到原因进行修复?
  4. win10+Ubuntu16.04 LTS双系统完美教程
  5. go标准库的学习-encoding/base64
  6. Enterprise Library v5.0 -- Data Access Application Block 开发向导(2)
  7. 用iptables实现NAT
  8. 【算法】排序_堆排序
  9. java socket网络编程
  10. 为什么volatile能保证有序性不能保证原子性