Выпуск № 429 от 03.07.2009, 13:05
Администратор рассылки: Victor Pyrlik, Модератор
В рассылке: подписчиков - 593, экспертов - 164
В номере: вопросов - 1, ответов - 2
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 169964: Здравствуйте. Скажите пожалуйста какой sql запрос надо составить ,что бы удалить из двух таблиц данные из одной таблицы данные которые старше 5-ти дней () , из другой все данные id которых совпали с удалёнными id из первой таблицы ? Спасибо.Вопрос № 169964:
Здравствуйте. Скажите пожалуйста какой sql запрос надо составить ,что бы удалить из двух таблиц данные из одной таблицы данные которые старше 5-ти дней () , из другой все данные id которых совпали с удалёнными id из первой таблицы ? Спасибо.
Отвечает Victor Pyrlik, Модератор :
Здравствуйте, Dima1967. В одном запросе наверно не получится. 1. Удалить все записи во второй таблице, в которой есть соответствие по ID записям из первой таблице отобранным по условию 2. Удалить все записи по условию из первой таблице.
DELETE FROM TABLE2 WHERE ID_TABLE1 IN (SELECT ID1 FROM TABLE1 WHERE DATE < (SYSDATE-5))
DELETE FROM TABLE1 WHERE DATE < (SYSDATE -5) ------------------------------------------- Для разных СУБД, по разному происходит обработка дат..
Например, это может быть DATEADD(DD,-5,GETDATE()) и т.д.
А вообще, это называется «ссылочная целостность». Для этого, надо просто определить зависимость этих таблиц с помощью ссылочных ключей (по полю ID_TABLE1 → ID1) связи «один ко многим» с правилом каскадного удаления. Тогда, достаточно будет просто удалить записи в первой таблице, и автоматически удалятся записи в зависимых таблицах.
Россия, Екатеринбург Тел.: 89043822027 ICQ # 490191733
----- Жизнь игрушка – пока играешь сам..
Ответ отправил: Victor Pyrlik, Модератор
Ответ отправлен: 28.06.2009, 14:07
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 251589
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает leonid59, 4-й класс :
Здравствуйте, Dima1967. Предлагается установить внешний ключ (если его нет) от таблицы t2 (id_table1) к таблице t1(id1), с каскадным удалением. После этого выполнить запрос. Один из вариантов в Firebird 2.1 приведен в приложении.
Приложение:
Ответ отправил: leonid59, 4-й класс
Ответ отправлен: 28.06.2009, 14:55
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 251590
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.