Автор Тема: Удаление связанных записей  (Прочитано 3142 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Удаление связанных записей
« : 10 Марта 2003, 13:05:05 »
Есть 2 таблицы связаных по полю id. Как удалить эти связанные записи  в одном запросе? (MySQL)

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Удаление связанных записей
« Ответ #1 : 10 Марта 2003, 13:48:14 »
до версии 4.0.0 никак...
http://www.mysql.com/doc/en/DELETE.html
AS IS...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Удаление связанных записей
« Ответ #2 : 10 Марта 2003, 13:54:38 »
читай доку про foreign key ... on delete cascade
Правда это (AFAIK) только в InnoDB-таблицах работает.
Для других типов таблиц нужно 2 запроса делать
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Kwazar

  • Философ
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.uhuhu.ru/
Удаление связанных записей
« Ответ #3 : 10 Марта 2003, 18:05:00 »
На MySQL проще 2 запроса сделать.
С уважением Сергей

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Удаление связанных записей
« Ответ #4 : 10 Марта 2003, 18:35:24 »
Цитировать
На MySQL проще 2 запроса сделать.

[moderator note]
К подобным фразам настоятельно рекомендуется рекомендуется добавлять "имхо".
[moderator note off]
2B OR NOT 2B = FF

Оффлайн Kwazar

  • Философ
  • Постоялец
  • ***
  • Сообщений: 201
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.uhuhu.ru/
Удаление связанных записей
« Ответ #5 : 10 Марта 2003, 19:54:30 »
Chs, понял, больше не буду....
С уважением Сергей

Оффлайн Abram

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 116
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Удаление связанных записей
« Ответ #6 : 11 Марта 2003, 11:25:42 »
Так помогите хоть с запросами:
Допустим table_1 u table_2 связаны по полю id
Так можно ? :
1. Delete from table_1 where (мое условие)

2. Не знаю как написать, но суть такова: удалить те записи  из table_2 в каких нет соответствия по id с table_1.

Или можна что-то эфективнее?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Удаление связанных записей
« Ответ #7 : 11 Марта 2003, 11:55:20 »
Можно так:
select id from table1 where (...)
далее программой сформировать массив id
delete from table1 where id in (....)
delete from table2 where id in (....)
2B OR NOT 2B = FF

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28