1
我希望能夠從2個表中刪除用戶的id =給定id的所有數據。我使用的是Java,Derby DB,Netbeans 7.3 Beta 2和OS X Mountain Lion。從一個聲明中的兩個表中刪除
我有兩個表(約巨大的圖像不好意思):
這是我的發言至今:
String stmt2 = "DELETE FROM APP.PERSON JOIN APP.DATAVAULT WHERE PID = ?";
PreparedStatement ps2 = Main.getPreparedStatement(stmt2);
ps2 = conn.prepareStatement(stmt2);
ps2.setInt(1, user.getId());
ps2.executeUpdate();
System.out.println("Deleted");
我不明白我是如何從APP刪除。 DATAVAULT以及APP.PERSON。正如你所看到的,在APP.DATAVAULT中有一個外鍵是用戶ID。
我已經嘗試了許多東西,如:
String stmt2 = "DELETE FROM APP.PERSON, APP.DATAVAULT WHERE PID = ?";
和
String stmt2 = "DELETE FROM APP.PERSON AND APP.DATAVAULT WHERE PID = ?";
我明白,我必須使用外鍵從兩者中刪除,但我不知道怎麼辦。
我不認爲你可以使用單個查詢從多個表中刪除,你可能需要使用多個刪除查詢並將其包含在一個事務中。 – 2013-03-18 01:39:25
@Aias - 我不認爲這些問題是相同的。 Mine是Java PreparedStatement,不是SQL查詢/命令。 – 2013-03-18 01:41:30
@PradeepSimha - 我已經這樣做了,但並不喜歡它,認爲可能有更好的解決方案。 – 2013-03-18 01:42:03