欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL中SQL模式的特点总结

程序员文章站 2022-10-23 11:17:15
前言 sql模式影响mysql支持的sql语法和执行的数据验证检查。 mysql服务器可以在不同的sql模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式...

前言

sql模式影响mysql支持的sql语法和执行的数据验证检查。

mysql服务器可以在不同的sql模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。dba可以设置全局sql模式以匹配站点服务器操作要求,并且每个应用程序可以将其会话sql模式设置为其自己的要求。

模式会影响mysql支持的sql语法以及它执行的数据验证检查。这使得在不同环境中使用mysql以及将mysql与其他数据库服务器一起使用变得更加容易。

下面话不多说了,来一起看看详细的介绍吧

设置sql模式

要在运行时更改sql模式,请sql_mode使用以下set 语句设置全局或会话 系统变量

set global sql_mode = 'modes';
set session sql_mode = 'modes';

模式列表

模式 注释
allow_invalid_dates 无效日期会生成错误
error_for_division_by_zero 除0错误
no_backslash_escapes 禁止使用反斜杠字符(\)作为字符串中的转义字符。启用此模式后,反斜杠就像其他任何一个普通字符一样。
no_unsigned_subtraction 在整数值之间减去(其中一个是类型) unsigned,默认情况下会产生无符号结果。如果结果否则为负,则会导致错误
no_zero_in_date '0000-00-00' 则允许并且插入产生警告
only_full_group_by select 内指定字段必须出现在 groupby 中,否则错误
strict_trans_tables 为事务存储引擎启用严格的sql模式,并在可能的情况下为非事务性存储引擎启用。
strict_all_tables 为所有存储引擎启用严格sql模式。无效的数据值被拒绝。

详情请参考 ...

严格sql模式

mysql服务器可以在不同的sql模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。在严格sql模式下,服务器会将某些警告升级为错误。

严格sql模式适用于以下语句

  • alter table
  • create table
  • create table ... select
  • delete
  • insert
  • load data
  • load xml
  • select sleep()
  • update

在存储的程序中,如果在严格模式生效时定义了程序,则列出的类型的单个语句将以严格的sql模式执行。

严格的sql模式适用于以下错误,表示输入值无效或缺失的一类错误。如果值具有错误的列数据类型或可能超出范围,则该值无效。如果要插入的新行不包含其定义中not null没有显式default子句的列的值,则缺少值。

  • er_bad_null_error
  • er_cut_value_group_concat
  • er_data_too_long
  • er_datetime_function_overflow
  • er_division_by_zero
  • er_invalid_argument_for_logarithm
  • er_no_default_for_field
  • er_no_default_for_view_field
  • er_too_long_key
  • er_truncated_wrong_value
  • er_truncated_wrong_value_for_field
  • er_warn_data_out_of_range
  • er_warn_null_to_notnull
  • er_warn_too_few_records
  • er_wrong_arguments
  • er_wrong_value_for_type
  • warn_data_truncated

致谢

感谢你看到这里,希望本篇文章可以帮到你,谢谢。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

上一篇: 去寺庙拜菩萨

下一篇: 算命的危害