SQLITE 主键乱序,怎么样重新设置一列递增的id

dingbo193 2015-07-09 10:24:10
已经获取好的数据因为进行了删减操作,原先自增的主键id,出现了例如 298 300 301 303 这种情况。怎么样能重新修改主键或者再添加一列自增加的序列,求大神指导
...全文
822 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
许晨旭 2015-07-10
  • 打赏
  • 举报
回复
引用 2 楼 dingbo193 的回复:
Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:/Users/00/DB1993.db"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt=c.createStatement(); ResultSet rs=stmt.executeQuery("SELECT * FROM TONGCHENGINDEX"); int i=1;//计数 while(rs.next()){ int Id=rs.getInt("ID"); stmt.executeUpdate("UPDATE TONGCHENGINDEX SET NUL="+i+" WHERE ID="+Id+";"); c.commit(); i++; } rs.close(); stmt.close(); c.close(); 我想对NUL列插入自增值,为什么不行呢
自增列不用插入数据,它会自动编号的,不用循环插入
Class.forName("org.sqlite.JDBC");
  c = DriverManager.getConnection("jdbc:sqlite:/Users/00/DB1993.db");
      c.setAutoCommit(false);
      System.out.println("Opened database successfully");
      stmt=c.createStatement();
      stmt.executeUpdate("UPDATE TONGCHENGINDEX SET ID=NUL");  //ID是旧的自增列,NUL是新增的自增列
      c.commit();
      rs.close();
      stmt.close();
      c.close(); 
dingbo193 2015-07-09
  • 打赏
  • 举报
回复
Class.forName("org.sqlite.JDBC"); c = DriverManager.getConnection("jdbc:sqlite:/Users/00/DB1993.db"); c.setAutoCommit(false); System.out.println("Opened database successfully"); stmt=c.createStatement(); ResultSet rs=stmt.executeQuery("SELECT * FROM TONGCHENGINDEX"); int i=1;//计数 while(rs.next()){ int Id=rs.getInt("ID"); stmt.executeUpdate("UPDATE TONGCHENGINDEX SET NUL="+i+" WHERE ID="+Id+";"); c.commit(); i++; } rs.close(); stmt.close(); c.close(); 我想对NUL列插入自增值,为什么不行呢
shoppo0505 2015-07-09
  • 打赏
  • 举报
回复
这种情况无法避免,如果业务逻辑没有问题,就别麻烦了,不然以后每次删除都重新更新一下id么? 具体做法: 1. 可以再新建一列,也设为自增列 2. 然后update 表格 id=新列值 3. 删除新建列

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧