@kirill-93

В чем ошибка при создании внешнего ключа MySQL?

Добрый день. У меня есть три таблицы, артисты, теги, и связь артистов с тегами(manyToMany).
artists(id, name)
tags(id, name)
artists_tags(id, artist_id, tag_id)

Все поля `id` - PRIMARY KEY, для artist_id и tag_id добавил индексы.

Теперь пытаюсь создать внешние ключи для artist_id и для tag_id
Для артистов:
ALTER TABLE `artists_tags` 
    		ADD CONSTRAINT `FK_artists_tags` 
    		FOREIGN KEY (`artist_id`)
    		REFERENCES `artists`(`id`)
		    ON UPDATE CASCADE
		    ON DELETE CASCADE;


Для тегов:
ALTER TABLE `artists_tags` 
    		ADD CONSTRAINT `FK_tags_artists` 
    		FOREIGN KEY (`tag_id`)
    		REFERENCES `tags`(`id`)
		    ON UPDATE CASCADE
		    ON DELETE CASCADE;


В обоих случаях получаю ошибку 'SQL(1005) errorno 150 Can't create table. Foreign key constraint incorrectly formed' .

Что не так я делаю? Мне нужно, чтоб при удалении артиста или тега удалялись все связанные записи из artists_tags. Помогите разобраться.
  • Вопрос задан
  • 184 просмотра
Пригласить эксперта
Ответы на вопрос 1
@saltydogd
Может и банально, но тип и размер полей artists.id и artists_tags.artist_id/ tags.id и artists_tags. tag_id - совпадают?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы