![]() |
Удаление записей таблицы по данным другой таблицы
Есть 2 таблицы: root,dir
Такой структуры ROOT: | id | name | id_PC | | 1 |_ first _| 9 | | 2 | second| 9 | DIR: | id | id_root | name | | 5 |___ 1 __| one | | 6 |___ 1 __| two | | 7 |___ 2 __| one | |12|___ 2 __| two | |13|___ 2 __|three| |21|___ 2 __| four | И нужно осущетвить такой запрос: Удалить запись из таблицы ROOT с id_PC = 9 При этом следом должны удалиться все записи из dir у которых id_root равно id удаленных записей из ROOT Делал таким путем: выбрал список ROOT Потом по id этих записей ROOT удалил из DIR где id_root совпадают с данными id, с одной стороны все правильно, но запросов не мало получается, можно ли одним запросом это сделать? Или минимальным их количеством? |
xNiSSaNx,
Вы не указали самое главное - в какой СУБД работаете. Видимо, раз не указали, то это mysql? :) То, что Вы хотите, можно делать, создав триггер, т.е. процедуру, которая будет автоматически выполняться в случае определенного типа запросов (в данном случае - при удалении записей из таблицы). Что-то вроде: Код:
|
Цитата:
|
xNiSSaNx,
а триггер-то написался и записался без ошибок? он должен быть виден в структуре базы данных ну и, если ничего не удаляется, то должны появляться ошибки. Что там написано? |
Цитата:
Спасибо и на это, сделал по другому |
Время: 19:09. |
Время: 19:09.
© OSzone.net 2001-