您好,我有一个sqlite数据库,其中包含许多记录,例如10540条记录,它们是按创建时间排序的,我想像中间的一条记录一样移动并喜欢自动执行
例如:
select * from table1 where id >= 8521;
UPDATE Table1 SET id = id +1 ;
不起作用,我得到错误:结果:唯一约束失败: 所以我想将所有记录从8521移到最后一条记录,并获得例如8520的位置,以便我可以将记录插入表的该位置。 甚至
id = select max(id)+1
不起作用,如何将ID从最后一条记录增加到所需的记录,以便可以在记录db中放置一个位置
答案 0 :(得分:0)
一个简单的update语句将失败,因为它将尝试在主键中创建重复的值。
您可以执行以下操作:
首先将列更新为应具有的负值:
update table1
set id = -(id + 1)
where id > 8520;
现在没有重复项,您只需要再次更新为正值即可。
update table1
set id = -id
where id < 0;
这可以解决问题,但是任何更新主键的操作不是推荐的操作