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

Тема в разделе "SQL", создана пользователем juventine, 22 апр 2012.

  1. juventine

    juventine Гость

    Добрый день!

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

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

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

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

    Вложения:

  2. juventine

    juventine Гость


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

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


    Система выдает ошибку.
     
  3. -master-

    -master- Well-Known Member

    Регистрация:
    14 янв 2012
    Сообщения:
    629
    Симпатии:
    18
    В условиях (where) запятая недопустима, перечислятьнадо через AND и OR
    Синтаксис DELETE не позволяет удаление из нескольких наблиц сразу.
     
Загрузка...

Поделиться этой страницей