我遇到以下错误:
SQLSTATE [42000]:语法错误或访问冲突:1067无效 'id'的默认值(SQL:创建表
advertising
(id
bigint unsigned not null默认为'None'auto_increment主键slug
varchar(50)在id
之后整理'utf8_unicode_ci'不为null,provider_name
varchar(100)整理'utf8_unicode_ci'null,tracking_code_large
文本整理为'utf8_unicode_ci'null,tracking_code_medium
文本整理为'utf8_unicode_ci'null,tracking_code_small
文本整理为'utf8_unicode_ci'null,active
tinyint unsigned null默认值'1')默认字符集utf8归类 'utf8_unicode_ci')
这是我的代码:
public function up()
{
Schema::create('advertising',function(Blueprint $table){
$table->bigIncrements('id')->unsigned()->default('None')->nullable($value = false)->autoIncrement();
$table->string('slug',50)->after('id')->collation('utf8_unicode_ci')->nullable($value = false);
$table->string('provider_name',100)->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
$table->text('tracking_code_large')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
$table->text('tracking_code_medium')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
$table->text('tracking_code_small')->collation('utf8_unicode_ci')->default(null)->nullable($value = true);
$table->tinyInteger('active')->unsigned()->nullable($value = true)->default(1);
});
}
我尝试更改id的值,但仍然会出错。
答案 0 :(得分:1)
您不能为自动递增的列设置默认值,我也不明白为什么您希望该值可以为空。
更改此:
$table->bigIncrements('id')->unsigned()->default('None')->nullable($value = false)->autoIncrement();
要这样:
$table->bigIncrements('id');
bigIncrements
已经意味着自动递增且未签名。