MySQL Laravel 5.4 field doesn’t have a default value错误
在使用MySQL和Laravel 5.4进行开发时,有时候我们会遇到这样的问题:当我们在进行数据的插入操作时,MySQL会报错,提示某个字段没有默认值。
这是因为MySQL的严格模式启用了,如果某个字段没有默认值,而我们在插入数据的时候没有设置该字段的值,MySQL就会报错。
下面介绍如何解决这个问题。
阅读更多:MySQL 教程
解决方法一:修改严格模式
可以通过修改MySQL的配置文件,关闭严格模式。
打开MySQL的配置文件my.cnf,在[mysqld]下面添加以下两行代码:
sql_mode=NO_ENGINE_SUBSTITUTION
然后重新启动MySQL服务即可。
解决方法二:设置默认值
为相应的字段设置默认值,即使我们在插入数据时没有设置该字段的值,MySQL也不会报错。
例如,我们有一个articles表,其中有一个title字段,我们可以设置该字段的默认值为“”(空字符串):
ALTER TABLE articles MODIFY title varchar(255) DEFAULT '';
这样,在我们插入数据时,如果没有设置title的值,MySQL就会使用默认值。
总结
遇到MySQL的“field doesn’t have a default value”错误时,我们可以通过修改MySQL的严格模式或为相应字段设置默认值来解决问题。建议在开发过程中,为表中的每个字段都设置好默认值,避免出现这种错误。
极客教程