首页  >  文章  >  数据库  >  为什么我在 MySQL 严格模式下收到“字段没有默认值”错误?

为什么我在 MySQL 严格模式下收到“字段没有默认值”错误?

Susan Sarandon
Susan Sarandon原创
2024-11-05 12:40:02854浏览

Why am I getting the

MySQL STRICT 模式错误:1364 '字段没有默认值'

在最近从 MAMP 迁移到 Apache、MySQL 和 PHP 时,执行 INSERT 命令突然导致以下错误:

SQLSTATE[HY000]: General error: 1364 Field 'display_name' doesn't have a default value

此问题是由于 MySQL 默认行为的更改而引起的。在 MySQL 版本 5.6.13 中,经常启用 STRICT 模式,这会强制执行更严格的数据验证规则。因此,没有默认值的字段在插入时不能再留空。

解决方案

要解决此问题,需要更改 MySQL STRICT 模式设置。有两种可能的解决方案:

  1. 临时更改:在 MySQL 控制台中运行以下命令:

    SET GLOBAL sql_mode='';

    这将暂时禁用 STRICT所有后续查询的模式。

  2. 永久更改:编辑您的 MySQL 配置文件 (my.cnf)。找到 sql_mode 设置并验证 STRICT_ALL_TABLES 或任何其他严格模式选项不存在。如果找到,请注释掉或删除这些选项。

进行上述任一更改后,重新启动 MySQL 服务器,INSERT 命令应该成功执行,并且不会出现“字段没有默认值”错误.

以上是为什么我在 MySQL 严格模式下收到“字段没有默认值”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn