簡體   English   中英

在MySQL中刪除具有相同ID的多個表中的數據

[英]Delete Data in Multiple Table with the same id in MySQL

這是查詢:

DELETE FROM patientpersonal,patientmedical,patientdental
WHERE patientpersonal.'" & dpatientid & "' = patientmedical.'" & 
    dpatientid & "' AND patientpersonal.'" & dpatientid & "' = patientdental.'"  
    & dpatientid & "'

它具有MySQL 1064的錯誤

在我看來,您似乎希望將三個語句包裝到一個存儲過程中。 您可以將ID作為參數傳遞到存儲過程中,然后運行三個delete語句。 這將很簡單,並且可以是事務性的,因此您可以確保它不會部分執行。

如果需要,這里是指向MySQL存儲過程的一個很好的入門鏈接: http : //net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/

我無法對此進行測試,因此可能會有點問題,但是您的存儲過程應如下所示:

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

您需要分別從每個表中刪除。

DELETE FROM patientpersonal WHERE patientid = ?
DELETE FROM patientmedical WHERE patientid = ?
DELETE FROM patientdental WHERE patientid = ?

或者,如果需要的話,您可以為您的患者表將外鍵設置為ON DELETE CASCADE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM