java - 如何跟踪列在数据库表上的位置

标签 java sql database postgresql orm

好吧,解释起来有点奇怪,我会尽力的。

我有一个名为 versionsDB 表 (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/

相关文章:

java - 如何从 Modelmapper 中排除整个属性(如果它们为空)

java - GSON:预期为 BEGIN_ARRAY,但实际为 BEGIN_OBJECT

java - 在下一个 Activity 中创建列表之前,在加载屏幕中显示一个计数器(对列表项进行计数)

带延迟的 Java 定时器永远不会运行

php - 如何不使用 set 作为 ID,但需要它作为对象的构造函数

java - 如何使用 BoneCP 记录连接池数据

mysql - 编写一个 SQL 查询来计算每个客户的总购买金额

php - SQL 使用小于 in 对结果进行排序

c# - 加载数据的时间很长。大量数据。 C# 中的 SQL 查询

database - haskell 与甲骨文