错误号:1364字段“ modified_at”没有默认值

时间:2019-12-09 07:59:28

标签: php codeigniter-3 codeigniter-2

当我尝试将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'没有默认值”消失了。 请帮助我克服这个错误。 谢谢你!

以下是错误的屏幕截图:

enter image description here

enter image description here

2 个答案:

答案 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();