Не могу добавить ограничения внешнего ключа на Laravel5.5 - PullRequest
0 голосов
/ 30 мая 2018

я создал несколько таблиц:

ТАБЛИЦА КЛЮЧЕЙ:

public function up()
{
    Schema::create('keyneeds', function(Blueprint $table)
    {
        $table->integer('id', true);
        $table->integer('segment_id')->index('FK_KN_SEGMENT');
        $table->integer('design_id')->index('FK_KEYNEEDS_DESIGN');
        $table->integer('admin_id')->index('FK_KN_ADMIN');
        $table->string('kntextcolor', 191)->nullable();
        $table->string('kntextcolorhover', 191)->nullable();
        $table->string('knbgcolor', 191)->nullable();
        $table->string('knbgcolorhover', 191)->nullable();
        $table->string('knhvize', 191)->nullable();
        $table->timestamps();
        $table->softDeletes();
        $table->engine = 'InnoDB';
    });
}

ТАБЛИЦА ДИЗАЙНОВ:

public function up()
{
    Schema::create('designs', function(Blueprint $table)
    {
        $table->integer('id', true);
        $table->string('design', 191)->nullable();
    });
}

Я также добавил ограничения внешнего ключа

public function up()
{
    Schema::table('keyneeds', function(Blueprint $table)
    {
        $table->foreign('design_id', 'FK_KEYNEEDS_DESIGN')->references('id')->on('designs')->onUpdate('RESTRICT')->onDelete('RESTRICT');
        $table->foreign('admin_id', 'FK_KN_ADMIN')->references('id')->on('admins')->onUpdate('RESTRICT')->onDelete('RESTRICT');
        $table->foreign('segment_id', 'FK_KN_SEGMENT')->references('id')->on('segments')->onUpdate('RESTRICT')->onDelete('RESTRICT');
    });
}

У меня возникает ошибка SQL при попытке перенастроить базу данных:

Can not add external index constraints (SQL: alter table `keyneeds` add constraint` FK_KEYNEEDS_DESIGN` foreign key (`design_id`) references`

igns ( id`)при удалении RESTRICT при обновлении RESTRICT)

1 Ответ

0 голосов
/ 18 июня 2018

Ответ дал Йонас Штауденмейр:

public function up()
{
    Schema::create('designs', function(Blueprint $table)
    {
        $table->integer('id', true);
        $table->string('design', 191)->nullable();
        $table->engine = 'InnoDB';
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...