在MySQL中删除多个id相同的表中的数据
以下是查询:在MySQL中删除多个id相同的表中的数据,mysql,vb.net,Mysql,Vb.net,以下是查询: DELETE FROM patientpersonal,patientmedical,patientdental WHERE patientpersonal.'" & dpatientid & "' = patientmedical.'" & dpatientid & "' AND patientpersonal.'" & dpatientid & "' = patientdental.'" & dpat
DELETE FROM patientpersonal,patientmedical,patientdental
WHERE patientpersonal.'" & dpatientid & "' = patientmedical.'" &
dpatientid & "' AND patientpersonal.'" & dpatientid & "' = patientdental.'"
& dpatientid & "'
它有一个错误MySQL 1064您需要分别从每个表中删除
DELETE FROM patientpersonal WHERE patientid = ?
DELETE FROM patientmedical WHERE patientid = ?
DELETE FROM patientdental WHERE patientid = ?
或者,如果您需要的话,您可以将patients表的DELETE CASCADE上的外键设置为
。在我看来,您可能希望将三条语句封装到一个存储过程中。您可以将ID作为参数传入存储过程,然后运行三条delete语句。它将很简单,并且可以是事务性的,因此您可以确保它不会部分执行
如果您需要MySQL存储过程,这里有一个很好的入门链接:
我无法对此进行测试,因此可能有点不对劲,但您的存储过程应该如下所示:
CREATE PROCEDURE sprocDeleteAllInfo(IN my_id INT)
BEGIN
START TRANSACTION;
DELETE FROM patientpersonal WHERE patientid = my_id;
DELETE FROM patientmedical WHERE patientid = my_id;
DELETE FROM patientdental WHERE patientid = my_id;
COMMIT;
END