好吧,解释起来有点奇怪,我会尽力的。
我有一个名为 versions 的 DB
表 (SQL
),其中包含不同 的列表作为版本一部分的操作。
例如,1.0 版:
1. Insert XX
2. Delete YY
3. Insert XY
在我的代码中,有时需要更新特定版本的操作。因此,例如,假设我需要在位置 2 中插入新的 Insert YX
。:
1. Insert XX
2. Insert YX
3. Delete YY
4. Insert XY
(这仍然是 1.0 版)。
如您所见,每次我更新版本时,某些操作的位置都会发生变化,因此初始跟踪会丢失。经过多次更新后,操作几乎不可能恢复到最初的位置。
所以,这是我的问题。我需要单独跟踪这些列:
我无法查询“Insert XX”所在的位置,因为可能不止一个 Insert XX
在我的 table 里面。
我的问题是,是否有任何解决方案可以跟踪 SQL 表中的位置变化?
我正在使用 PostgreSQL,Java 作为编程语言,ORMLite 作为映射器。
提前致谢。
最佳答案
您可以为行使用唯一的 id 字段,为订单使用序列字段
id seq val
1 1 Insert XX
2 2 Delete YY
3 3 Insert XY
当您在 pos 2 添加新项目时(它获得下一个 id(4),并且您在 seq >=2 处进行更新以设置 seq=sql+1 )
id seq val
1 1 Insert XX
4 2 Insert YX
2 3 Delete YY
3 4 Insert XY
关于java - 如何跟踪列在数据库表上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16300737/