Home  >  Article  >  Database  >  Let's talk about the various modes of sql_mode

Let's talk about the various modes of sql_mode

藏色散人
藏色散人forward
2023-03-14 17:17:042099browse

This article brings you relevant knowledge about mysql. It mainly talks about the various modes of sql_mode. Friends who are interested can take a look below. I hope it will be helpful to everyone.

Let's talk about the various modes of sql_mode

Introduction to each mode of sql_mode

View sql_mode

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.16 sec)

STRICT_TRANS_TABLES

When inserting or updating data, if the value of a field cannot be converted to the target data type, MySQL will report an error. This mode only applies to transaction tables.

So the inconsistency of this mode will cause the same code to report errors in different environments

This mode is only for innodb tables

STRICT_ALL_TABLES

with STRICT_TRANS_TABLES is similar, but this mode applies to all tables, including non-innodb tables.

ERROR_FOR_DIVISION_BY_ZERO

MySQL will throw an error if the divider is zero. If this mode is not enabled, MySQL returns NULL.

NO_AUTO_CREATE_USER

When MySQL uses the GRANT statement to create a new user, the creation of non-existing users is not allowed. If you enable this mode, you must first create the user manually.

NO_ENGINE_SUBSTITUTION

If the specified storage engine does not exist, MySQL will not replace it with another storage engine, but will report an error.

ANSI_QUOTES

When this mode is enabled, MySQL treats double quotes as quotes for identifiers rather than quotes for strings.

IGNORE_SPACE

If this mode is enabled, MySQL ignores spaces in SQL statements. This can beautify the SQL statement without changing the structure of the SQL statement.

ONLY_FULL_GROUP_BY

If this mode is enabled, all non-aggregated columns must be included in the GROUP BY statement, otherwise MySQL will report an error.

NO_ZERO_IN_DATE

If this mode is enabled, MySQL does not allow zero values ​​in dates or times.

NO_ZERO_DATE

If this mode is enabled, MySQL does not allow the use of "0000-00-00" dates.

Recommended learning: "MySQL Video Tutorial"

The above is the detailed content of Let's talk about the various modes of sql_mode. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete