MySQL General error: 1364 Field ‘XXX’ doesn’t have a default value

向数据库中插入数据时报了以上错误,其原因为: MySQL使用了严格验证方式

解决办法

  • mysql设置的问题,有 `my.ini` 的就找这个文件,没有的就找 my.cnf(这个一般都在 /ect/my.conf
  • 直接把 [mysqld] 模块下的 sql-mode 模式改变下,找到sql-mode,然后把这句删掉,改成:
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ;;(逗号前后禁止有空格)
  • 重启数据库

xampp 中MySQL数据库的设置方式如下:

sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
log_bin_trust_function_creators=1

character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

参考