【问题标题】:MySQL - 'field' doesn't have a default valueMySQL - 'field' 没有默认值
【发布时间】:2016-04-25 06:16:45
【问题描述】:

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

错误信息:

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

“备注”字段在 PHPMyAdmin 中设置了默认值“无”。我不明白为什么在设置默认值时会出错。我相信 '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, ]);

【问题讨论】:

  • 请出示您的代码!!
  • $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, ] );
  • 编辑您的问题并将您的代码粘贴到那里

标签: php mysql laravel


【解决方案1】:

None 不是默认字符串值。表示没有设置默认值。

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

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

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

或者从PhpMyAdmin做吧

【讨论】:

【解决方案2】:

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

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

然后php artisan migrate

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
  • 1970-01-01
  • 2013-03-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
相关资源
最近更新 更多