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 варианта) при удалении родителя.
б) если таблицы используют движок 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`