admin 管理员组

文章数量: 1184232


2024年4月14日发(作者:hook部分什么意思)

sqlmode的用法

SQL mode(模型)是MySQL中一种配置选项,它用于控制

MySQL执行SQL语句时的行为。SQL mode可以影响到MySQL的数

据验证、插入、更新等处理逻辑。

可以使用以下方法来设置SQL mode:

1. 修改配置文件:可在MySQL配置文件(例如myf或)

中设置默认SQL模式。找到[mysqld]或[mysql],在下面添加或编辑

"sql_mode"参数,设置为所需的模式。例如:

```

[mysqld]

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_

DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USE

R,NO_ENGINE_SUBSTITUTION

```

保存后重启MySQL服务。

2. 修改会话模式:在MySQL会话中,可以使用以下语句来设置

SQL mode:

```

SET

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO

_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_US

ER,NO_ENGINE_SUBSTITUTION';

```

这将更改当前会话的SQL mode。

3. 查看当前SQL mode:可以使用以下语句来查看当前的SQL

mode设置:

```

SELECT @@sql_mode;

```

SQL mode的常用选项包括:

- STRICT_TRANS_TABLES: 启用严格模式,执行数据插入和更新时会

更严格地验证数据的合法性。

- NO_ZERO_IN_DATE: 不允许日期或日期时间类型字段中的零值。

- NO_ZERO_DATE: 不允许日期或日期时间字段中的'0000-00-00'零日

期。

- ERROR_FOR_DIVISION_BY_ZERO: 执行除零时引发错误。

- NO_AUTO_CREATE_USER: 不允许GRANT创建登录名。

- NO_ENGINE_SUBSTITUTION: 如果指定的存储引擎不可用或不可实

现,则拒绝操作。

可以根据具体需求,设置适当的SQL mode来控制MySQL的行

为。


本文标签: 模式 设置 执行 插入 选项