Этот вопрос закрыт для ответов, так как повторяет вопрос Ошибка: 150 «Foreign key constraint is incorrectly formed» при создании новой таблицы?

Foreign key constraint is incorrectly formed / Не могу создать ВК, в чем проблема?

При миграции получаю ошибку
Foreign key constraint is incorrectly formed
Я не силен в БД, подскажите, что делаю не так.

public function safeUp()
    {
        $this->createTable('profile', [
            'id' => $this->primaryKey(),
            'surname' => $this->string()->notNull(),
            'name' => $this->string()->notNull(),
            'email' => $this->string()->notNull(),
            'gender' => $this->string()->defaultValue("MAN"),
            'birthday' => $this->date(),
            'telephone' => $this->string(),
            'site' => $this->string(),
            'role' => $this->string()->notNull(),
            'company' => $this->string(),
            'about' => $this->text(),
            'city' => $this->string(),
        ]);

        $this->addForeignKey(
            'fk-profile-id-user',
            'profile',
            'id',
            'user',
            'id',
            'NO ACTION',
            'CASCADE'
        );

        $this->addForeignKey(
            'fk-profile-email-user',
            'profile',
            'email',
            'user',
            'email',
            'NO ACTION',
            'CASCADE'
        );
    }


Первый внешний ключ появился, а вот со вторым проблемы. Типы идентичны у user.email и profile.email.
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Для поля user.email создан unique индекс? Первичный ключ может указывать только на поле, не допускающее дублирование значений.

Но сама ситуация, когда между двумя таблицами по разным парам полей реализуются две дублирующие друг-друга связи, выглядит по меньшей мере странно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы