如何使用mySQL以递归方式从db中删除父记录

时间:2017-06-07 10:12:21

标签: php mysql recursion

我有一个(非常)复杂的数据库结构。 其中一个表代表客户。此表由其他子表引用,并且这些子表也被引用(不一定是树结构)。

我必须删除customers表中的父记录,而不更改约束定义(我不想在级联上使用delete !!!)。

我想在mySQL中递归地实现这个,但是这看起来非常复杂(如果我访问了表,如果它是一个叶表,我必须在每一步中计算,并保存父表的键,所以我可以删除与之关联的子表的记录。)

我想使用递归而不是使用在数据表上中继的迭代方式,因为当将来某人进入新表时我将不得不更改算法..我希望它保持一致。

eample: 如果那是hirarchy(tab代表一个孩子)

客户

code_831
    site_sales_billings

cus_dev_devid

custom_wizard_containers
    unlock_wizard_request

customer_attendant_console
    customer_attendant_console_row

customer_attendant_consoles
    customer_region_attendant_consoles
        customer_region_attendant_console_rows  

我想首先从leaves表中删除行: site_sales_billings,cus_dev_devid,unlock_wizard_request,customer_attendant_console_row,customer_region_attendant_console_rows和upwords,直到我有权删除没有约束错误的客户记录。

0 个答案:

没有答案