Удаление И Обновление Данных

  • Автор темы Автор темы juventine
  • Дата начала Дата начала
J

juventine

Добрый день!

Не совсем разобрался, как удалить данные из приведенной ниже схемы БД. У нас есть новостной сайт, который состоит из новостей и обзоров. У новостей и обзоров есть рубрики, которые включают в себя подрубрики. Нам необходимо удалить из БД рубрику, все ее подрубрики и все новости в них. Я так понимаю, что просто банально удалив первую рубрику из таблицы rubrics, мы не удалим тем самым подрубрики в этой рубрике (таблица subrubrics) и не удалим новости (таблица news). Каким же образом должен выглядеть запрос на удаление рубрики, все ее подрубрик, и новостей из этой рубрики? Предположим, что мы хотим удалить рубрику с id_rubric=1.

Вообще, я так понимаю, id_rubric является внешним ключом для news и subrubrics. То есть, по идее, SQL не должен давать право удалить запись, являющуюся мигрирующим ключом для других таблиц. У меня почуму-то при запросе DELETE FROM `rubrics` WHERE rubrics.id_rubric`=1; SQL удаляет рубрику, но при этом в связанных таблицах id_rubric=1 остаются, не говоря уже про наличие подрубрик и новостей в сообветствующих полях. Не понял я этого момента...

И каким образом перенести все обзоры из некоторой указанной подрубрики А в некоторую указанную подрубрику В?

Огромное спасибо!
 

Вложения

  • Структура_БД.JPG
    Структура_БД.JPG
    42 КБ · Просмотры: 545
Добрый день!

Не совсем разобрался, как удалить данные из приведенной ниже схемы БД. У нас есть новостной сайт, который состоит из новостей и обзоров. У новостей и обзоров есть рубрики, которые включают в себя подрубрики. Нам необходимо удалить из БД рубрику, все ее подрубрики и все новости в них. Я так понимаю, что просто банально удалив первую рубрику из таблицы rubrics, мы не удалим тем самым подрубрики в этой рубрике (таблица subrubrics) и не удалим новости (таблица news). Каким же образом должен выглядеть запрос на удаление рубрики, все ее подрубрик, и новостей из этой рубрики? Предположим, что мы хотим удалить рубрику с id_rubric=1.

Вообще, я так понимаю, id_rubric является внешним ключом для news и subrubrics. То есть, по идее, SQL не должен давать право удалить запись, являющуюся мигрирующим ключом для других таблиц. У меня почуму-то при запросе DELETE FROM `rubrics` WHERE rubrics.id_rubric`=1; SQL удаляет рубрику, но при этом в связанных таблицах id_rubric=1 остаются, не говоря уже про наличие подрубрик и новостей в сообветствующих полях. Не понял я этого момента...

И каким образом перенести все обзоры из некоторой указанной подрубрики А в некоторую указанную подрубрику В?

Огромное спасибо!


делаю такой запрос:

DELETE FROM `rubrics`,
`subrubrics`, `news`
WHERE
rubrics.id_rubric=1, subrubrics.id_rubric=1, news.id_rubric=1


Система выдает ошибку.
 
В условиях (where) запятая недопустима, перечислятьнадо через AND и OR
Синтаксис DELETE не позволяет удаление из нескольких наблиц сразу.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!