Java:更新MySQL表的id

标签 java mysql sql

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

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

1a5

2 f3

(3 t1已删除)

4 r2

所以现在应该更新结果:

1a5

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();

最佳答案

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

update authors set id = ? where id = ?

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

关于Java:更新MySQL表的id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13615604/

相关文章:

java - 在 Tomcat 上运行 Hibernate 5 需要哪些 Jar 文件?

java - URL 设置连接超时不起作用

java - Retrofit/Gson 将空模型放入 List<>

java - FAST 应用程序间通信的良好协议(protocol)?

sql - 通过 exec SP 执行相同的代码与在查询窗口中执行 SP 代码报告相同的结果,但执行时间不同

android - 从 android shell 向数据库中插入行的有效方法?

php - 从mysql拉取时如何在php选项值中添加计算功能?

php - 尝试进行 php/mysql 搜索,需要将字符串分解为数组并搜索

php - 使用PHP查询MySQL数据库(if语句)

mysql - 从具有外键约束的表中删除行