sql_mode 查询
时间: 2024-06-09 21:02:07 浏览: 171
SQL_MODE是MySQL中的一个系统变量,用于控制MySQL服务器的行为。它定义了MySQL在执行SQL语句时的一些规则和限制。通过设置SQL_MODE,可以改变MySQL的默认行为,以满足特定的需求。
SQL_MODE可以通过以下方式进行查询:
1. 使用以下SQL语句查询当前的SQL_MODE设置:
```
SELECT @@sql_mode;
```
2. 使用以下SQL语句查询MySQL服务器默认的SQL_MODE设置:
```
SELECT @@global.sql_mode;
```
SQL_MODE的值是一个由多个模式组成的字符串,每个模式之间使用逗号分隔。每个模式代表了一种特定的行为规则或限制。常见的SQL_MODE模式包括:
- STRICT_TRANS_TABLES:启用严格模式,对于插入、更新和删除操作,如果数据类型不匹配或者值超出范围,将会产生错误。
- NO_ZERO_IN_DATE:禁止在日期中使用零值,例如'0000-00-00'。
- NO_ZERO_DATE:禁止使用零值作为日期,例如'0000-00-00'。
- ERROR_FOR_DIVISION_BY_ZERO:对于除以零的操作,将会产生错误。
- ANSI_QUOTES:启用ANSI_QUOTES模式,要求使用双引号而不是单引号来引用字符串。
这只是一小部分常见的SQL_MODE模式,实际上还有很多其他模式可供选择。你可以根据自己的需求来设置SQL_MODE,以满足特定的数据库操作要求。
相关问题
请在mysql配置文件修sql-mode或sql_mode为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 若无sql_mode请在[mysqld]后面一行加上
我理解了,你想让我为你提供一个mysql配置文件中修改sql_mode的方法,对吧? 首先,在mysql的配置文件中找到[mysqld],接着添加以下语句:sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,然后重启mysql服务即可。 如果你原本就有sql_mode的配置,那么直接将其修改为NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION即可。希望这个回答对你有帮助。
执行SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));如何调回来
要将 MySQL 的 sql_mode 设置恢复成原来的值,可以执行以下命令:
```
SET sql_mode='原来的值';
```
其中,'原来的值' 是你在修改 sql_mode 属性之前设置的值,可以从 MySQL 的配置文件中查找到。如果不确定原来的值是什么,可以尝试使用以下命令:
```
SELECT @@sql_mode;
```
这将显示当前的 sql_mode 设置值。然后,将该值复制并用作恢复命令中的 '原来的值'。
阅读全文
相关推荐














