Forum Webscript.Ru

Общие => Базы данных => Тема начата: Abram от 10 Марта 2003, 13:05:05

Название: Удаление связанных записей
Отправлено: Abram от 10 Марта 2003, 13:05:05
Есть 2 таблицы связаных по полю id. Как удалить эти связанные записи  в одном запросе? (MySQL)
Название: Удаление связанных записей
Отправлено: ThE0ReTiC от 10 Марта 2003, 13:48:14
до версии 4.0.0 никак...
http://www.mysql.com/doc/en/DELETE.html
Название: Удаление связанных записей
Отправлено: Макс от 10 Марта 2003, 13:54:38
читай доку про foreign key ... on delete cascade
Правда это (AFAIK) только в InnoDB-таблицах работает.
Для других типов таблиц нужно 2 запроса делать
Название: Удаление связанных записей
Отправлено: Kwazar от 10 Марта 2003, 18:05:00
На MySQL проще 2 запроса сделать.
Название: Удаление связанных записей
Отправлено: Chs от 10 Марта 2003, 18:35:24
Цитировать
На MySQL проще 2 запроса сделать.

[moderator note]
К подобным фразам настоятельно рекомендуется рекомендуется добавлять "имхо".
[moderator note off]
Название: Удаление связанных записей
Отправлено: Kwazar от 10 Марта 2003, 19:54:30
Chs, понял, больше не буду....
Название: Удаление связанных записей
Отправлено: Abram от 11 Марта 2003, 11:25:42
Так помогите хоть с запросами:
Допустим table_1 u table_2 связаны по полю id
Так можно ? :
1. Delete from table_1 where (мое условие)

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

Или можна что-то эфективнее?
Название: Удаление связанных записей
Отправлено: Chs от 11 Марта 2003, 11:55:20
Можно так:
select id from table1 where (...)
далее программой сформировать массив id
delete from table1 where id in (....)
delete from table2 where id in (....)