假设我有一个表 eventsInHistory (对不起,我不知道创建表结构的漂亮方法):
1 ---------------- 17760704-独立签名声明
2 ---------------- 19551105-布朗博士发明了时空旅行
现在我有第二张桌子 peopleInHistory :
1 ----------------托马斯·杰斐逊
2 ----------------布朗博士
...以及第三个表 peopleAtEvents :
1 ------------------------------- 1
2 ------------------------------- 2
现在,让我说我听说了一个新事件,Doc Brown时光倒流,认识了Thomas Jefferson。 SQLite(和/或DBrowser)中是否有一种方法可以自动递增以使事件按时间顺序编号,还可以递增它们可能具有的任何链接;换句话说,将 eventsInHistory 和 peopleAtEvents 表自动转换为以下内容:
1 ---------------- 17760704-独立签名声明
2 ---------------- 17760706-布朗博士遇到了托马斯·杰斐逊
3 ---------------- 19551105-布朗博士发明了时空旅行
1 ------------------------------- 1
1 ------------------------------- 2
2 ------------------------------- 2
2 ------------------------------- 3
如果我需要将新链接添加到与事件和人员相关的表中,那很好,但是我要寻找的是将条目绑定到位置而不是数字,以便当我保存现有链接时去在我开始的地方添加一些东西。
答案 0 :(得分:2)
据我了解您的问题-答案是否定的。自动增加的值是“消失”,并且只要不使用新数据重新创建表,就不会对自动增加的值进行重新排序。
您确定您真的需要重新排序吗?如果值是“有意义的”,则您始终可以查询表并以您喜欢的方式获取数据:
您要按时间顺序排列 eventsInHistory 表吗?只需查询即可:
SELECT * FROM eventsInHistory ORDER BY date;
SELECT * FROM peopleAtEvents ORDER BY personNumber, eventNumber;
如果您希望以这种方式访问数据而不必每次都输入该查询,则只需创建一个视图:
CREATE VIEW V_EventsOrderer AS
SELECT * FROM eventsInHistory ORDER BY date;