当前位置:Gxlcms > 数据库问题 > 服务器SQL模式--记一次工作中遇到的问题

服务器SQL模式--记一次工作中遇到的问题

时间:2021-07-01 10:21:17 帮助过:7人阅读


严格模式还影响日期中由零,零日期和零处理除法,结合ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE和NO_ZERO_IN_DATE模式。 有关详细信息,请参阅这些模式的说明。


服务器SQL模式


MySQL服务器可以在不同的SQL模式下运行,并且可以根据sql_mode系统变量的值对不同的客户端应用不同的模式。 DBA可以设置全局SQL模式以匹配站点服务器操作需求,每个应用程序可以根据自己的需要设置其会话SQL模式。


模式会影响MySQL支持的SQL语法以及数据验证检查的效果。 这使得在不同的环境中使用MySQL变得更容易,并且可以将MySQL与其他数据库服务器一起使用。


在使用InnoDB表时,请考虑innodb_strict_mode系统变量。 它为InnoDB表启用额外的错误检查。


最重要的sql_mode值可能是这些:


- ANSI

  此模式更改语法和行为以更加符合标准SQL。 这是本节最后列出的特殊组合模式之一。

- STRICT_TRANS_TABLES

  如果某个值无法插入到事务表中,请中止该语句。 对于非事务性表,如果该值出现在单行语句或多行语句的第一行中,则中止该语句。 更多细节在本节后面给出。

  为事务性存储引擎启用严格的SQL模式,并在非事务性存储引擎可能的情况下启用。

- TRADITIONAL

  使MySQL像“传统”的SQL数据库系统一样行事。 在将不正确的值插入列时,此模式的简单描述是“给出错误而不是警告”。

  注意

  一旦发现错误,INSERT或UPDATE将立即中止。 如果您使用的是非事务性存储引擎,则这可能不是您想要的,因为在错误之前进行的数据更改可能无法回滚,从而导致“部分完成”更新。


需要查看更多模式,请查询mysql官方手册https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html




本文出自 “coding” 博客,请务必保留此出处http://xtceetg.blog.51cto.com/5086648/1981530

服务器SQL模式--记一次工作中遇到的问题

标签:mysql 严格模式

人气教程排行