写一个sql 根据商品id来同时删除两张表表里面的数据 但是这两张表不一定都保存有这个商品id的数据 java
时间: 2024-03-21 11:44:28 浏览: 58
假设这两张表的表名分别是`table1`和`table2`,且都有一个名为`product_id`的列,可以使用以下的SQL语句来删除这两张表中`product_id`等于指定值的数据:
```sql
DELETE FROM table1 WHERE product_id = ?;
DELETE FROM table2 WHERE product_id = ?;
```
其中`?`表示一个占位符,需要在Java代码中使用PreparedStatement来执行这个SQL语句,并将指定的商品ID设置为占位符的值。具体的Java代码可以参考以下的示例:
```java
String sql1 = "DELETE FROM table1 WHERE product_id = ?";
String sql2 = "DELETE FROM table2 WHERE product_id = ?";
try (Connection conn = DriverManager.getConnection(url, username, password);
PreparedStatement stmt1 = conn.prepareStatement(sql1);
PreparedStatement stmt2 = conn.prepareStatement(sql2)) {
// 设置占位符的值为指定的商品ID
stmt1.setInt(1, productId);
stmt2.setInt(1, productId);
// 执行SQL语句
stmt1.executeUpdate();
stmt2.executeUpdate();
} catch (SQLException e) {
// 处理异常
}
```
注意,在使用PreparedStatement时,需要先使用`setXXX`方法来设置占位符的值,然后再执行SQL语句。这样可以避免SQL注入等安全问题。
阅读全文