你好,我有一个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;
这将解决问题,但任何类型的更新主键都不是推荐的做法