1

ユーザーのID=指定されたIDである2つのテーブルからすべてのデータを削除できるようにしたい。私はJava、Derby DB、Netbeans 7.3 Beta 2、OS XMountainLionを使用しています。

私は2つのテーブルを持っています(巨大な画像については申し訳ありません):

ここに画像の説明を入力してください

これはこれまでの私の声明です:

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 = ?";

両方から削除するには外部キーを使用する必要があることは理解していますが、方法がわかりません。

4

1 に答える 1

5

残念ながら、ドキュメントによると、Derbyでは単一のSQLクエリで複数のテーブルを削除することはできません。

MySQLなどの他のRDBMSパッケージを使用できます...Derbyだけではありません。

于 2013-03-18T01:41:14.087 に答える