Java:更新MySQL表的id

时间:2012-11-28 22:32:09

标签: java mysql sql

这是我的删除类,它将id作为输入。

我成功删除了该行(例如,我的数据库中包含id为'3'的行),现在我想更新所有id-s。 例如:我的行是:

1 a5

2 f3

(3 t1被删除)

4 r2

所以现在应该更新结果:

1 a5

2 f3

3 r2

String delete = "DELETE from authors WHERE id = ?";

          Class.forName("com.mysql.jdbc.Driver");
          Connection con = DriverManager.getConnection(url, "root", "easttg");
          PreparedStatement ps = con.prepareStatement(delete);

          //updating the id
          String sql = "Select id from authors";
          PreparedStatement ps2 = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

          ps.setInt(1, id);
          ps.executeUpdate();
          con.close();

1 个答案:

答案 0 :(得分:2)

要更新某些行,必须使用更新语句。不是选择陈述:

update authors set id = ? where id = ?

那就是说:ID只是行的技术标识符。它们不应该被普遍修改。并且使用纯技术ID的原因是它们永远不需要被修改,这是一件好事,因为可能有许多其他表具有包含相同ID的外键。该ID也可能是用于在网站中显示行的某些URL的一部分,许多人可能已将其添加为书签。 ID是......行的标识。您不会更改身份。如果你这样做,会发生各种各样的问题,就像你改变了自己的名字一样。