作为一个背景知识,我正在使用一个SQL Lite数据库,该数据库由一个闭源UI使用,该UI没有通过方便的时间戳列排序结果(哎呀,谢谢诺基亚!) - 它只是使用默认排序,它对应于主键,这是一个vanilla自动递增'id'列。
我很容易得到当前和所需id值的映射,但应用映射是我当前的问题。似乎我无法交换值作为更新一次处理一行,这将暂时导致重复值。我已经尝试使用带有case子句的更新语句,使用临时的无序值,但由于每行只处理一次,这显然不起作用。因此,我已经达到需要3个更新语句来交换一对值的程度,这远非理想,因为我希望它能够很好地扩展。
与此相比,设置了许多触发器,这使得在新表中添加/删除行成为一个复杂的问题,除非我可以在表复制和放大导致的任何添加/删除期间禁用它们。删除,这就是为什么我还没有追求那条道路。
我认为我的下一行调查将是一个新的列,新的ID然后找到一种方法在删除旧列之前将主索引移动到它,但是我把它扔到那里以防万一有人可以提供更好的解决方案,这将节省我一些时间:))