您好我有一个sqlite数据库,有许多记录,如10540记录,他们按创建时间排序,我想像中间的记录一样转移,喜欢自动执行
例如 :
select * from table1 where id >= 8521;
UPDATE Table1 SET id = id +1 ;
不起作用我得到错误:结果:UNIQUE约束失败:所以我想将所有记录从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;
这样做可以解决问题,但任何更新主键都不是推荐的做法