迁移档案$table->increments('id');$table->foreign('user_id')->references('id')->on('users');$table->foreign('band_id')->references('id')->on('bands');$table->foreign('genre_id')->references('id')->on('genres');$table->foreign('cate_id')->references('id')->on('cates');$table->foreign('type_id')->references('id')->on('types');$table->integer('status');$table->date('date');$table->time('time');$table->decimal('price');$table->tinyIncrements('instrument');$table->string('instrument_detail',255);$table->timestamps();运行php artisan后迁移SQLSTATE [42000]:语法错误或访问冲突:1075不正确的表定义;默认值为0。只能有一个自动列,并且必须将其定义为键(SQL:创建表bookings(idint unsigned not null auto_increment主键,statusint不为null,date 日期不为null,time时间不为null,price十进制(8,2)不为null, instrumenttinyint unsigned不为null auto_increment主键, instrument_detailvarchar(255)不为null,created_at时间戳为null,updated_at时间戳为null)默认字符集utf8mb4整理utf8mb4_unicode_ci)而这下面SQLSTATE [42000]:语法错误或访问冲突:1075不正确的表定义;默认值为0。只能有一个自动列,并且必须将其定义为键
2 回答
白猪掌柜的
TA贡献1893条经验 获得超10个赞
下句话:
$table->foreign('user_id')->references('id')->on('users');
只是告诉数据库在父/外部列之间建立链接,但是为了做到这一点,该列必须先前存在,所以:
$table->unsignedInteger('user_id'); // first this $table->foreign('user_id')->references('id')->on('users'); // then this
您应该为每个外键执行此操作。
笔记:
Laravel不需要您定义此链接,因为它不需要使用此链接,仅出于数据库一致性的考虑。
- 2 回答
- 0 关注
- 177 浏览
添加回答
举报
0/150
提交
取消