2017-02-12 79 views
0

我有一个迁移对我的代码:不能表像下面laravel错误添加外键约束

Schema::create('tags', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->char('tag' , 15); 
}); 

现在,我有我的admin表,下面的迁移中,我有相关的外键我tags表,迁移如下:

Schema::create('admin', function (Blueprint $table) { 
    $table->char('tag' , 15); 
    $table->foreign('tag')->references('tag')->on('tags'); 
}); 

现在,当我运行这个迁移我得到以下错误:

enter image description here

这两个表都是innodb我在laravel的设置中改变了这个。但我仍然无法添加外键约束错误。为什么?

+0

[This SO answer](https://stackoverflow.com/questions/22615926/migration-cannot-add-foreign-key-constraint-in-laravel)解决您的问题。 –

+0

为什么不引用id列而不是标签列本身?无论如何,数据库是否干净?因为如果通过创建外键来发生该错误,数据库会失去它的完整性,所以不能创建fk。 –

+0

@DamianSimonPeter尝试了这个appraoch ..没有工作,看到了这个线程! –

回答

0

尝试

$table->foreign('tag')->references('id')->on('tags'); 

因为在tags表,主键是id