Я новичок в среде Laravel, я также пытаюсь создать таблицу с 2-мя внешними ключами, и я хочу, чтобы они стали первыми в этой таблице. Но у меня есть ошибки, когда я пишу PHP ремесленник мигрироватьLaravel - Несколько первичный ключ
SQLSTATE [42000]: Ошибка синтаксиса или нарушение прав доступа: 1068 Рассеянный первичный KE
у определенного (SQL: изменить таблицу doc_tag
добавить первичный ключ doc_tag_id_tag_primar
у (id_tag
)
Schema::create('doc_tag', function(Blueprint $table)
{
$table->integer('id_doc')->unsigned();
$table->primary('id_doc');
$table->foreign('id_doc')
->references('id')
->on('doc');
$table->integer('id_tag')->unsigned();
$table->primary('id_tag');
$table->foreign('id_tag')
->references('id')
->on('tag');
});
Я знаю код SQL, который: (Но я не знаю, как перевести этот SQL-код в Laravel)
CREATE TABLE IF NOT EXISTS `Doc_project`.`document_has_Tags` (
`document_id_document` INT NOT NULL,
`Tags_id_Tag` INT NOT NULL,
PRIMARY KEY (`document_id_document`, `Tags_id_Tag`),
INDEX `fk_document_has_Tags_Tags1_idx` (`Tags_id_Tag` ASC),
INDEX `fk_document_has_Tags_document1_idx` (`document_id_document` ASC),
CONSTRAINT `fk_document_has_Tags_document1`
FOREIGN KEY (`document_id_document`)
REFERENCES `Doc_project`.`document` (`id_document`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_document_has_Tags_Tags1`
FOREIGN KEY (`Tags_id_Tag`)
REFERENCES `Doc_project`.`Tags` (`id_Tag`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
Это отношение N: N
У кого-то есть идея?
Благодарим за помощь. В MySQL я вижу, что идентификатор является первичным сейчас, но это нормально, что есть такая же ошибка, когда я запускаю эту оценку: php artisan migrate? – Alexis