mysql 新服务器上的默认值错误

mysql default value errors on new server

我有一个奇怪的问题。我已将 PHP 源代码和 MySQL 数据库(phpMyAdmin 标准导出-导入)从一台服务器复制到另一台服务器。在旧服务器上一切正常,但在新服务器上出现数据库错误。

Field 'xxx' doesn't have a default value

如果null is off,我知道如何设置默认值或需要传递值。但是为什么它可以在旧服务器上运行?我在进出口期间错过了什么吗?旧数据库中没有触发器。也许配置不同?

MySQL 最有可能处于 STRICT 模式。尝试 运行

SET GLOBAL sql_mode='' 

或编辑您的 my.cnf 以确保您没有设置 STRICT_ALL_TABLES 或类似内容。

或者,更改 table 定义并为字段添加默认值。

例如:

ALTER TABLE `tableA` CHANGE `field` `field` TEXT NULL

或者,给它一个默认值作为空字符串:

ALTER TABLE `tableA` CHANGE `field` `field` TEXT NOT NULL DEFAULT ''