enter image description here我想将数据从旧表(table_old)迁移到新表(table_new)。
table_old具有以下列。
table_new具有以下列。
每个recordseq
可以有多个记录,例如{<1 />}:
如果对于特定的recordnum
有两个记录,则recordseq
列数据中将出现1和2。
要求是在迁移数据时,旧表中的每两个记录应出现在1条记录中。
这里数据迁移意味着考虑使用recordnum
,field1
,field2
和field3
。
例如,如果特定序列在旧表中有4条记录,则第一条记录将插入到recordnum
,field1
,field2
和第二行数据的新表的第一行中将被插入到field3
,field4
和field5
中。
类似地,对于旧表中的第三行数据将被插入到field6
,field1
和field2
中的新表的第二行中,并且第四行数据将被插入到{{1} },field3
和新表第二行的field4
。
某些记录可能仅包含一个记录。不同的序列可能具有不同的记录编号。
在新表中,recordnum _old将保存旧表的recordnum列数据,并且迁移后recordnum将包含新记录号。
因此,在第一次迁移时,我们插入了recordseq,startdate,enddate和recordnum _old数据 而recordnum是一个常数,例如999,以后将更新为实际的recordnum。 之后,我们编写了下面的代码来迁移剩余的数据,如上所述,这些数据分别是field1,field2,field3。
field5
执行完毕后,可以通过检查没有分页号999的记录来过滤掉新记录
此代码的主要问题是,如果一个特殊序列仅具有一条记录,并且旧表中的最大记录数为5 在第一次迭代中,旧记录的第一行插入到行号为1的新表的第一行中,然后在第二次迭代中为recordnum覆盖空值,因为该记录序列没有更多记录了。
因此,我不想为新的seq更新表,该seq在遍历while循环时在旧表中没有更多记录。
您能帮我实现这一目标吗?