Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Рекурсивное удаление
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Рекурсивное удаление

Страниц (1): [1]
 

1. haveFun - 04 Августа, 2015 - 17:28:04 - перейти к сообщению
Привет. Столкнулся с неординарной задачей.
Допустим есть сущность "А"
А: id(int)AI, name(varchar), parent_id(id)
1 aaa 0
2 bbb 1
3 ccc 1
4 ddd 2

и B: id(int)AI, name(varchar), a_id
1 zzz 1
2 xxx 2
3 yyy 4

суть такова:
1: нужно написать такой запрос, который бы удалял по параметру A.id саму запись, и записи B.a_id
2: и если можно, то еще и все А у которых A.parent_id соответствует входному A.id, и дальше по цепочке...

надеюсь понятно объяснил.
второй пункт в принципе можно повесить на рекурсию в пхп, а вот как бы одним запросом удалять записи из двух таблиц? может сджоинить как-то или на стадии проектирования что-то типа триггера написать... подскажите как правильно?
пс: я нуб)
2. MiksIr - 04 Августа, 2015 - 20:35:42 - перейти к сообщению
Внешний ключ на себя с ON DELETE CASCADE, mysql это умеет.
Удаляете одно, а остальное все удаляет сама база.

 

Powered by ExBB FM 1.0 RC1