MySQL模式 Strict Mode知识点详解

 更新时间:2020年03月01日 09:33:24   作者:koda  
在本篇文章里小编给各位整理的是一篇关于MySQL模式 Strict Mode知识点详解内容,需要的朋友们参考下。

I. Strict Mode阐述

根据 mysql5.0以上版本 strict mode (STRICT_TRANS_TABLES) 的限制:

1).不支持对not null字段插入null值

2).不支持对自增长字段插入''值,可插入null值

3).不支持 text 字段有默认值

看下面代码:(第一个字段为自增字段)

Sql代码

$query="insert into demo values('','$firstname','$lastname','$sex')"; 

上边代码只在非strict模式有效。

Code代码

$query="insert into demo values(NULL,'$firstname','$lastname','$sex')"; 

上边代码只在strict模式有效。把空值''换成了NULL.

II.让数据库支持Strict Mode

1.对数据库结构进行以下改进来支持strict mode:

1) 给所有not null字段都设置非null默认值,字符串默认值为 '',数值默认值为 0,日期默认值为 '0000-00-00 00:00:00'

2) 去掉text字段的默认值

3) 规范化改进: 把 title 字段统一改为 varchar(255),把有默认值的null字段改为not null字段

2.如果安装的PHP程序数据库结构关闭Strict mode

1).一个是安装mysql5.0(含以上)版本的时候去掉strict mode。

编辑 my.cnf,关闭Strict Mode:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

2). 另一个就是修改查询语句。例如在

if ($this->dbcharset) {
@mysql_query("SET NAMES ".$this->dbcharset);
}

后面执行

mysql_query("SET @@sql_mode = ''");

注意确定你使用的是MySQL5

mysqli方式类似,就是执行的是

mysqli_query($this->connection_id, "SET @@sql_mode = ''");

到此这篇关于MySQL模式 Strict Mode知识点详解的文章就介绍到这了,更多相关MySQL模式 Strict Mode内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Mysql数据库如何使用DELETE语句从数据库表中删除数据(数据库数据删除)

    Mysql数据库如何使用DELETE语句从数据库表中删除数据(数据库数据删除)

    DELETE语句是SQL中的一个重要功能,允许用户根据特定条件删除表中的数据行,在本文中,我们探讨了如何使用DELETE语句从数据库表中删除数据,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • mysql数据库导出xml的实现方法

    mysql数据库导出xml的实现方法

    因为有人问到如何将mysql数据库导出为xml文件,所以发现了这篇文章
    2008-09-09
  • MYSQL中解析json格式数据方法示例

    MYSQL中解析json格式数据方法示例

    这篇文章主要给大家介绍了关于MYSQL中解析json格式数据的相关资料,JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写,需要的朋友可以参考下
    2023-08-08
  • MySQL运行在docker容器性能损失解析

    MySQL运行在docker容器性能损失解析

    这篇文章主要为大家介绍了MySQL运行在docker容器中的性能损失解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • MySQL SELECT同时UPDATE同一张表问题发生及解决

    MySQL SELECT同时UPDATE同一张表问题发生及解决

    例如用统计数据更新表的字段(此时需要用group子句返回统计值),从某一条记录的字段update另一条记录,而不必使用非标准的语句,等等感兴趣的朋友可以参考下哈
    2013-03-03
  • MySQL 的 20+ 条最佳实践

    MySQL 的 20+ 条最佳实践

    数据库操作是当今 Web 应用程序中的主要瓶颈。 不仅是 DBA(数据库管理员)需要为各种性能问题操心,程序员为做出准确的结构化表,优化查询性能和编写更优代码,也要费尽心思。 在本文中,我列出了一些针对程序员的 MySQL 优化技术
    2016-12-12
  • Windows安装MySQL8.0.28.0.msi方式(图文详解)

    Windows安装MySQL8.0.28.0.msi方式(图文详解)

    这篇文章主要介绍了Windows安装MySQL8.0.28.0.msi,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • MySQL判断空值的三种方法

    MySQL判断空值的三种方法

    在创建表时,可以指定的列是否可以不包含值,如果在一个列不包含值,则其称其为空值NULL,NULL一个特殊值,代表缺失的值或者不适用的情况,表示未知数据,本文给大家介绍了MySQL判断空值的三种方法,需要的朋友可以参考下
    2024-03-03
  • MySQL表约束的实现

    MySQL表约束的实现

    本文主要介绍了MySQL表约束的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • mysql 详解隔离级别操作过程(cmd)

    mysql 详解隔离级别操作过程(cmd)

    这篇文章主要介绍了mysql 详解隔离级别操作过程(cmd)的相关资料,需要的朋友可以参考下
    2017-01-01

最新评论