Php 删除表中的一行时,如何删除所有相关的表记录?
我有一个删除客户的按钮。如果删除了客户,则仅从客户表中删除该客户。但是我在表中有客户的记录,比如付款(添加了所有付款记录)和评论(添加了所有用户评论) 我在所有表中都将客户id作为外键。但它的字段名不同。例如,在customer_details表中,我将customer id命名为id,在其他表中,我将其作为lead_idPhp 删除表中的一行时,如何删除所有相关的表记录?,php,mysql,Php,Mysql,我有一个删除客户的按钮。如果删除了客户,则仅从客户表中删除该客户。但是我在表中有客户的记录,比如付款(添加了所有付款记录)和评论(添加了所有用户评论) 我在所有表中都将客户id作为外键。但它的字段名不同。例如,在customer_details表中,我将customer id命名为id,在其他表中,我将其作为lead_id 我应该编写什么样的查询来从所有三个(客户、评论、付款)表中删除客户的记录?您应该使用外键的cascade属性 比如说 FOREIGN KEY (customer_id) R
我应该编写什么样的查询来从所有三个(客户、评论、付款)表中删除客户的记录?您应该使用外键的cascade属性 比如说
FOREIGN KEY (customer_id) REFERENCES customer(id)
ON DELETE CASCADE
最好先从其他表中删除,然后再从客户表中删除。但您可以一次从所有表中删除,使用类似以下内容的查询: DELETE FROM tbl_name1 , tbl_name2 ... USING table_references [WHERE where_condition] 删除 从tbl_名称1,tbl_名称2。。。 使用表u引用 [何处条件]
希望能有所帮助mysql中是否有方法查询“系统”模式,并使用该模式找出哪个键CasCasCasdes链接到底层基表。基本上是“逆向工程”,使用所有级联必须存在的系统信息?我曾经用Oracle做过类似的事情。@Michael Durrant,我的想法和你在这里的评论以及你对我的评论完全一样,哈哈。给你:@Michaeldurrent是的,对于每个链接到主表的表,你应该在删除级联选项上给出这个选项。我如何将它用作查询?你能解释一下lostmohican吗?@Bala.C你不必在查询中使用它,例如,如果你在person表中有person id,并将其与注释表一起引用,在注释表的定义中,你将一列声明为外键,在DELETE CASCADE中,当你从person表中删除person时,此人的评论将自动删除。我希望这是对你的回答:)