Как исправить «Двойное ограничение внешнего ключа» в миграции Laravel - PullRequest
0 голосов
/ 04 июля 2019

Я хочу создать два внешних ключа для ссылки на две разные таблицы в одной таблице

У меня ниже ошибка:

        General error: 1005 Can't create table `abumela_main`.`#sql- 
        780_38` (errno: 150 "Foreign key constraint is incorrectly 
        formed") (SQL:  alter table `mails_details` add constraint 
        `mails_details_sender_id_foreign` foreign key (`sender_id`) 
         references `senders` (`sender_id`) on delete cascade on update 
         cascade)

Это то, что я пробовал, но первый работал, а другой не работает.

        public function up()
        {
          Schema::create('mails_details', function (Blueprint $table) {
            $table->unsignedInteger('details_id')
                ->autoIncrement();
            $table->unsignedInteger('mail_id');
            $table->foreign('mail_id')
                ->references('mail_id')
                ->on('mails') //mails tables
                ->onUpdate('cascade') //cascade on update
                ->onDelete('cascade'); //cascade on delete
            $table->string('comments');
            $table->dateTime('date_received');
            $table->unsignedInteger('sender_id');
            $table->foreign('sender_id')
                ->references('sender_id')
                ->on('senders') //mails tables
                ->onUpdate('cascade') //cascade on update
                ->onDelete('cascade'); //cascade on delete
            $table->timestamps();
          });
        }
...