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
致谢
感谢你看到这里,希望本篇文章可以帮到你,谢谢。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。