Задать вопрос
dilikpulatov
@dilikpulatov
веб-программист

Как сделать связь в MySQL?

Здравствуйте!
В интернете почитал статье и смотрел видео уроки но у меня никак не получается создать связь между таблицам
итак допустим есть два таблица
1 - post (id, status, date)
2 - post_content (id, parent_id, language, name, content)

при удаления поста нужно удалить его все контенты которые в разных языках
как можно это сделать?
у меня версия MySQL 5.7
в phpMyAdmin как сделать? или нужен запрос
по моему я не очень хорошо понял связать их
  • Вопрос задан
  • 3613 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если я правильно понял, то здесь у вас связь один-ко многим, поле `post_content`.`parent_id` указывает на `post`.`id`.
Для того, чтобы создать такую связь (внешний ключ, FOREIGN KEY) в MySQL сначала необходимо убедиться, что оба этих поля имеют одинаковый тип и размер и в колонке `post_content`.`parent_id` нет значений, отсутствующих в `post`.`id`.
Затем надо создать саму связь
ALTER TABLE `post_content`
  ADD CONSTRAINT FOREIGN KEY `fk_parent_id` (`parent_id`)
    REFERENCES `post` (`id`)
    ON DELETE CASCADE;

Этот запрос добавляет внешний ключ `fk_parent_id` с поля `parent_id` на `post`.`id` и говорит, что при удалении записи из таблицы `post` будут удалены связанные записи из `post_content`.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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