MySQL - 'field'没有默认值

时间:2016-04-25 06:16:45

标签: php mysql laravel

我正在使用Laravel框架,它给出了DB

的错误

错误讯息:

  

[2016-04-25 06:07:34] local.ERROR:异常'PDOException'用   消息'SQLSTATE [HY000]:常规错误:1364字段'备注'没有   有一个默认值'in ...

字段'remarks'在PHPMyAdmin中设置了默认值'None'。我不明白为什么它设置了默认值时会出错。我相信'None'是一个字符串值,因此它不像NULL值。

$aId = DB::table('attachments')->insertGetId([ 'document_type_code'=>$document_id, 'report_no'=>'report '.$document_id, 
'file_attachment_link'=>$filepath, 'file_attachment_upload'=>$file->getClientOriginalName(), 'uploaded_at'=> $now, 'uploaded_by' => 1, 
//Auth::user()->id 'version_number' => 1, ]);

2 个答案:

答案 0 :(得分:1)

None不是默认字符串值。这意味着没有设置默认值。

您可以在INSERT语句中传递值,也可以更改表格以实际保留列的默认值。

您可以使用此sql语句来更改表格

ALTER TABLE attachments MODIFY COLUMN `remarks` VARCHAR(255) DEFAULT 'something';

或者从PhpMyAdmin

进行

答案 1 :(得分:1)

不要直接编辑表格。你有自己的模型。 生成新的迁移并将您的字段设置为可为空:

$table->string('name', 50)->nullable();

然后php artisan migrate