Laravel. Как добавить 3й primary key к существующей таблице?

Есть миграция Orchid'а для ролей. В таблице уже имеются 2 ключа

Schema::create('role_users', function (Blueprint $table) {
    $table->unsignedBigInteger('user_id');
    $table->unsignedInteger('role_id');
    $table->primary(['user_id', 'role_id']);
    $table->foreign('user_id')
        ->references('id')
        ->on('users')
        ->onUpdate('cascade')
        ->onDelete('cascade');
    $table->foreign('role_id')
        ->references('id')
        ->on('roles')
        ->onUpdate('cascade')
        ->onDelete('cascade');
});

Необходимо добавить еще 3й =>

$table->string('language', 5)
        ->primary()
        ->default('')
        ->comment('to restrict user access to permissions with languages');

При выполнении миграции, которая должна добавить 3 primary key выскакивает следующая ошибка

Syntax error or access violation: 1068 Multiple primary key defined (SQL: ALTER TABLE `role_users` ADD PRIMARY KEY(`language`))

Ответы (1 шт):

Автор решения: Akina

Как добавить 3й primary key к существующей таблице?

Вопрос лишён смысла - таблица не может иметь более одного первичного ключа.

Если же речь о том, что есть композитный первичный ключ (вернее, выражение первичного ключа) из 2 полей, и надо, чтобы выражение первичного ключа состояло из трёх полей, то единственный способ достичь этого - удаление существующего первичного ключа и последующее создание нового, с требуемым выражением.

→ Ссылка