【发布时间】:2019-11-19 20:52:30
【问题描述】:
我收到以下错误:
SQLSTATE[42000]:语法错误或访问冲突:1067 无效 'id' 的默认值 (SQL: create table
advertising(idbigint unsigned not null 默认 'None' auto_increment 主键,slugvarchar(50) 在id之后整理“utf8_unicode_ci”不为空,provider_namevarchar(100) 整理 'utf8_unicode_ci' null,tracking_code_largetext collate 'utf8_unicode_ci' null,tracking_code_mediumtext collate 'utf8_unicode_ci' null,tracking_code_smalltext collate 'utf8_unicode_ci' null,activetinyint unsigned null default '1') 默认字符集 utf8 collate '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 的值,但仍然出错。
【问题讨论】:
-
默认情况下,
id期望您传递 string 的 integer 值。并且自增字段不需要任何默认值或可为空。