Я получаю следующую ошибку:
SQLSTATE [HY000]: общая ошибка: 1215 Невозможно добавить ограничение внешнего ключа (SQL: изменить таблицу subtags
добавить ограничение subtags_tag_id_foreign
внешний ключ (tag_id
) ссылки id
(tags
) на каскад удаления)
После просмотра других ответов, касающихся этой ошибки в stackoverflow и этой записи блога: https://www.percona.com/blog/2017/04/06/dealing-mysql-error-code-1215-cannot-add-foreign-key-constraint/ Я все еще могу 'не могу понять, почему я получаю сообщение об ошибке.
Это миграция для таблицы вложенных тегов:
public function up()
{
Schema::create('subtags', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('tag_id')->unsigned();
$table->integer('id')->unsigned();
$table->string('name');
$table->timestamps();
});
Schema::table('subtags', function (Blueprint $table) {
$table->foreign('tag_id')
->references('tags')
->on('id')
->onDelete('cascade');
$table->primary(array('tag_id', 'id'));
});
}
В момент ошибки таблица тегов уже создана, и я могуне опечатки, но просто чтобы убедиться, вот миграция таблицы тегов:
public function up()
{
Schema::create('tags', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('name');
$table->timestamps();
});
}