убить детей, а в конце родителя.

1. Женек (14.05.2011 / 00:02)
Помогите засунуть все в 1 запрос.
есть таблица категорий и таблица моделей.
В таблице моделей записи ссылаются на id категории.

При удалении категории нужно прибить всех детей в таблице моделей, а затем убить родителя в таблице категорий. Одним запросом. Связаны по ID
Что то ничего у меня не получается

2. ramzes (14.05.2011 / 00:29)
двумя не судьба?
delete chld where mather_id = $id
delete mather where id = $id

3. Дмитрий (14.05.2011 / 01:36)
2. ramzes, только хотел сказать
З.Ы. Тему назвал - прямо как журналист программы Максимум D

4. Макс (14.05.2011 / 01:47)
3. dima.london, Это он и есть obana

5. Дмитрий (14.05.2011 / 01:49)
Попробуй что-то типа
DELETE FROM `children` WHERE `children_id`=`roditel_id` UNION ALL DELETE FROM `roditel` WHERE `roditel_id`=ID


6. KOZZ (14.05.2011 / 05:21)
2. ramzes, ну а допустим мне нужно удалить со всеми детьми?
допустим
вложения:
1/2/3
delete from `category` where `parent`='1'; // удаляем категорию 2
delete from `category` where `id`='1'; // удаляем саму категорию 1
а категория 3 останется нетронутой.
тут нужна рекурсия, только как это реализовывать я даже не знаю.
может что то с помощью array_walk_recursive, хз

7. Женек (14.05.2011 / 12:46)
2. ramzes, dima.london, если я спрашиваю, значит не судьба, 100500 запросов гонять не есть хорошо.

Добавлено через 07:06 сек.
5. dima.london, ERROR: syntax error at or near "UNION"

8. Алексей (14.05.2011 / 13:15)
погугли на тему каскадное удаление

9. ramzes (14.05.2011 / 13:34)
7. Basters, 2 вроде как не 100500 ;)
вопрос о многих категориях не стоял.
Но опять же 2 запроса, только с IN('1', '2', '3')

10. Ant0ha (14.05.2011 / 15:29)
InnoDB в помощь. Определяешь внешние ключи и связи (ON DELETE CASCADE), при удалении строки в родительской таблице, удалятся и все чилды, т.е. одним запросом.
http://scabbiaza.net/innodb.html

11. Женек (14.05.2011 / 19:31)
Ant0ha (14 Мая 2011 / 15:29)
InnoDB в помощь. Определяешь внешние ключи и связи (ON DELETE CASCADE), при удалении строки в родительской таблице, удалятся и все чилды, т.е. одним запросом.
http://scabbiaza.net/innodb.html
Прости, забыл указать что база постгресовская)

URL: https://visavi.net/topics/21513