#java #ms-access #jdbc #ms-access-2007 #ms-access-2010
#java #ms-access #jdbc #ms-access-2007 #ms-access-2010
Вопрос:
Я хочу удалить одну строку из нескольких таблиц в базе данных Access.
Это код, который я пытался использовать в своем проекте, но я получил ошибку.
PreparedStatement ps = con.prepareStatement("DELETE FROM 'customer_details' , 'papers', 'magzines' WHERE 'customer_id' = ? ");
ps.setString(1,tx1.getText());
int string = ps.executeUpdate();
Кто-нибудь может помочь мне решить эту проблему?
Комментарии:
1. какую ошибку вы получили?
2. Вы предоставляете строки для предложения DELETE. Удалите одинарные кавычки.
Ответ №1:
Я только что попробовал следующее, и это сработало для меня:
String sql =
"DELETE t1.*, t2.*, t3.* "
"FROM "
"("
"Table1 AS t1 "
"INNER JOIN "
"Table2 AS t2 "
"ON t2.ID=t1.ID "
")"
"INNER JOIN "
"Table3 AS t3 "
"ON t3.ID=t2.ID "
"WHERE t1.ID=?";
ps = con.prepareStatement(sql);
ps.setInt(1, 4); // delete where ID=4
int n = ps.executeUpdate();
Итак, в вашем случае попробуйте что-то вроде этого:
PreparedStatement ps = con.prepareStatement(
"DELETE c.*, p.*, m.* "
"FROM "
"("
"customer_details AS c "
"INNER JOIN "
"papers AS p "
"ON p.customer_id=c.customer_id "
")"
"INNER JOIN "
"magzines AS m "
"ON m.customer_id=p.customer_id "
"WHERE c.customer_id=?");
ps.setString(1,tx1.getText());
int n = ps.executeUpdate();
Комментарии:
1. fasdfjasfdka dsaf asdf