добавить «при обновлении» и «при удалении» ограничения внешнего ключа с миграциями laravel - PullRequest
0 голосов
/ 10 июня 2019

Я делаю свой стол вот так ...

    Schema::create('matched_merchants', function (Blueprint $table)
    {
        $table->increments('id')->unsigned();
        $table->integer('merchant_id')->unsigned();
        $table->integer('offer_id')->unsigned();
        $table->foreign('merchant_id')->references('id')->on('merchants')->onUpdate('cascade')->onDelete('restrict');
        $table->foreign('offer_id')->references('id')->on('offers')->onUpdate('cascade')->onDelete('restrict');
    });

Я добавляю 2 внешних ключа, оба имеют ограничения onUpdate и onDelete, но добавляется только ограничение обновления.

Если я удалю onUpdate, он правильно добавит ограничение onDelete.

Я не могу добавить их отдельно, потому что получаю ошибку дубликата ключа.

Я мог бы добавить их вручную с помощью необработанного оператора SQL, но если есть правильный способ сделать это, id, скорее, сделайте это.

1 Ответ

0 голосов
/ 10 июня 2019

По какой-то причине, если вы установите столбцы как nullable(), Laravel правильно устанавливает внешние ключи.

Тем не менее, я вижу, что это вызывает другие проблемы, поэтому я рекомендую выполнить необработанный оператор SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...