Запрос на удаление из нескольких таблиц в Access

#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