Java MySQL在删除行时更新行

时间:2014-11-01 13:14:54

标签: java mysql

我有一个带有AUTO_INCREMENTING id列和名称列的数据库。如果我从数据中删除一行,我想更新所有其他行的id,这样序列就是正确的,我很失落请帮助我。

我试过了:

stmt = conn.createStatement();
        rs = stmt.executeQuery("SELECT COUNT(id) FROM " + table_name_products);
        int count = 0;
        while(rs.next()){
            count = rs.getInt("COUNT(id)");
        }

        stmt = conn.createStatement();
        for(int i = 1; i <= count; i++){
            if(i > id){
                stmt.addBatch("UPDATE " + table_name_products + " SET id = "+ i-- +" WHERE id = "+ i +";");
            }
        }

2 个答案:

答案 0 :(得分:0)

我认为这是不可能的。

我认为唯一的解决方案是在删除某个位置之后缓存所有行,删除这些行,然后再将缓存的行添加到表中。

可能有数据库管理命令来执行此操作,但您不希望在每次删除后都执行此操作。

答案 1 :(得分:0)

数据库trigger怎么样?看看here

  

数据库触发器是自动执行的过程代码   响应某个特定表或某个视图中的某些事件   数据库中。