你好,我想删除名为“kosik”的 mysql 表中的所有行,并将它们传递给另一个名为“obj_zoznam”的表。
我在 java 中使用这段代码:
String orderstatus = "Accepted";
try {
stmt = con.createStatement();
stmt2 = con.createStatement();
stmt3 = con.createStatement();
rs = stmt.executeQuery("select ID as idzaz, ID_pouzivatela as idpou, ID_tovaru as idtov, cena as suma, ks as kusy from kosik order by ID limit 1");
while (rs.next()) {
int zaz = rs.getInt("idzaz");
int pou = rs.getInt("idpou");
int tov = rs.getInt("idtov");
int suma = rs.getInt("suma");
int kusy = rs.getInt("kusy");
String sstr = "insert into obj_zoznam (ID_pouzivatela, ID_tovaru, suma, ks, stav) values ("
+ "'" + id_usera + "', "
+ "'" + tov + "', "
+ "'" + suma + "', "
+ "'" + kusy + "', "
+ "'" + orderstatus + "')";
String sstr2 = "delete from kosik where ID = " + zaz;
stmt2.executeUpdate(sstr);
stmt3.executeUpdate(sstr2);
}
stmt.close();
stmt2.close();
stmt3.close();
} catch (Exception e) {
out.println("Error in writing: " + e.toString());
}
但是这段代码总是只从表“kosik”中删除一条记录。我想知道如何删除该表中的所有记录。
谁能告诉我我做错了什么?我将不胜感激。
谢谢。
最佳答案
从 SELECT
中删除 LIMIT 1
,这样您就可以显示所有记录,而不仅仅是 1。在这一行:
rs = stmt.executeQuery("select ID as idzaz, ID_pouzivatela as idpou, ID_tovaru as idtov, cena as suma, ks as kusy from kosik order by ID limit 1");
去掉限制1:
rs = stmt.executeQuery("select ID as idzaz, ID_pouzivatela as idpou, ID_tovaru as idtov, cena as suma, ks as kusy from kosik order by ID");
不要从 DELETE
中删除 WHERE
否则您将选择 1 条记录 (stmt
),将其插入另一个表 (stmt2
) 然后清除所有表,然后将所有其他记录插入 obj_zoznam
(stmt3
)。
关于java - 我无法删除 mysql 表中的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54038174/