Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中删除多个id相同的表中的数据_Mysql_Vb.net - Fatal编程技术网

在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