删除表中的行时如何删除所有相关的表记录?

时间:2011-11-26 13:34:59

标签: php mysql

我有一个删除客户的按钮。如果客户被删除,则仅从客户表中删除。但我在客户的表格中有记录,例如付款(添加了所有付款记录)和评论(添加了所有用户评论)。

我在所有表中都有客户ID作为外键。但它的字段名称不同。例如,在customer_details表中,我在id的名称中有客户ID,在其他表中我有lead_id。

我应该写什么样的查询来从所有三个(客户,评论,付款)表中删除客户的记录?

2 个答案:

答案 0 :(得分:9)

你应该使用外键的级联属性

例如

 FOREIGN KEY (customer_id) REFERENCES customer(id)
                      ON DELETE CASCADE

答案 1 :(得分:0)

最好先从其他表中删除,然后最后从客户表中删除。但是你可以一次从所有表中删除,使用类似这样的查询:

DELETE 
    FROM tbl_name1 , tbl_name2 ...
    USING table_references
    [WHERE where_condition]

希望有所帮助