当我尝试将stricton值设置为 TRUE 时,它将显示错误Error Number: 1364 Field 'modified_at' doesn't have a default value"
,而当尝试将其设置为 FALSE 时,它将显示错误
Variable 'sql_mode' can't be set to the value of 'REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE( @@sql_mode'
SELECT GET_LOCK('ad3549572403a9c71bea1109d26f4b48', 300) AS ci_session_lock
当值为true时,一切正常,但我需要刷新以产生错误:“错误号:1364字段'modified_at'没有默认值”消失了。 请帮助我克服这个错误。 谢谢你!
以下是错误的屏幕截图:
答案 0 :(得分:4)
使此列为空。因为在此,modified_at不能为空。保存行数据时,您传递了每个元素,但没有将任何数据保存到modified_at中。因此,请将该列设置为可空。
$table->date('modified_at')->nullable();
如果您没有足够的数据,那么
php artisan migrate:refresh
如果数据库中有足够的数据并且不希望刷新它,则添加一个新的迁移文件。并将此列设置为可空
Schema::table('your_table_name', function (Blueprint $table) {
$table->string('modified_at')->nullable()->change();
});
有关详细信息 https://laravel.com/docs/5.8/migrations#modifying-columns
答案 1 :(得分:0)
在插入数据时您没有将值传递给'modified_at'列,因此会引发错误。
您应该使该列具有默认值,或者查看我认为使其可为空的列名称。
(假设该列是日期字段,并使用Laravel)
您将必须使用Column modifier ->nullable()
迁移:
$table->date('modified_at')->nullable();
。