SQLite 移位 rowid 在多个记录中



你好,我有一个sqlite db,里面有很多记录,比如10540条记录,它们是按创建时间排序的,我想像中间的记录一样移动,喜欢自动移动

例如:

select * from table1 where id >= 8521; 
UPDATE Table1 SET id = id +1 ;

不起作用,我收到错误:结果:唯一约束失败:因此,我想将所有记录从 8521 移到最后一条记录,例如在 8520 位置放置位置,以便我可以将我的记录插入表格的那个位置。甚至

id = select max(id)+1

不起作用,如何将ID从最后一条记录递增到所需的记录,以便我可以在记录数据库中放置一个位置

一个简单的更新语句会失败,因为它会尝试在主键中创建重复的值。
你可以做的是:
首先将列更新为它们应具有的值的负数:

update table1
set id = -(id + 1)
where id > 8520;

现在没有重复项,您只需要再次更新为正值:

update table1
set id = -id
where id < 0; 

这将解决问题,但任何类型的更新主键都不是推荐的做法

相关内容

  • 没有找到相关文章