[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Удаление из нескольких таблиц по цепочке
greatilya
Имеются таблицы вида(жирным название таблиц, после двоеточия список полей):
a:
- id
- name

b:
- id
- a_id

c:
- id
- b_id

d:
- id
- c_id
и т.д. ....

подскажите синтаксис написания SQL запроса для удаления связаных записей
Например: мне надо из таблицы а удалить запись с id=1 тогда из таблицы b мне нужно удалить записи где a_id = 1, а из таблицы с мне надо удалить записи с b_id равными id удаленным из таблицы b... и т.д.
Буду очень признателен! )



Спустя 33 минуты, 13 секунд (23.11.2009 - 13:37) glock18 написал(а):
а) многотабличный delete. есть такая штука, да
б) если таблицы используют движок innodb, то можно создать внешние ключи . тогда соответственные записи будут умирать, нуллиться или еще чего (всего 4 варианта) при удалении родителя.

Спустя 8 минут, 48 секунд (23.11.2009 - 13:46) greatilya написал(а):
Цитата
если таблицы используют движок innodb

использую MySAM ...

а с помощью добавления JOIN в DELETE, удаление можно осуществить?

Спустя 34 минуты, 26 секунд (23.11.2009 - 14:20) glock18 написал(а):

Спустя 22 минуты, 46 секунд (23.11.2009 - 14:43) greatilya написал(а):
за ссылку огромное СПАСИБО! очень помогли!

Вот используя другой русский источник сделал так:
DELETE `a`, `b`, `c`, `d` FROM `a`, `b`, `c`, `d` WHERE `a`.`id`  =  1 AND `a`.`id` = `b`.`a_id` AND `b`.`id` = `c`.`b_id` AND `c`.`id` = `d`.`c_id`
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.