对存储过程进行编程并不是我编程的长处,但是我正在努力变得更好。 我偶然发现了一个对我来说很难的业务需求,我想知道是否有人在职业生涯中已经处理过这个需求。
登台表中有此数据,需要将其装载到生产表中,并在其中插入新数据和旧数据的insert-update(类似备份)。
生产表中的数据示例如下:
AssetID | BeginDate | EndDate | Field1 | Field2 | FieldN
1 | (TS) | (TS) | 0.2351 | 1.3510 | 4.1234
同时进行分期:
AssetID | Field1 | Field2 | FieldN
1 | 0.2351 | 1.3510 | 4.1234
在生产中PK是AssetID和BeginDate,而在暂存中PK是AssetID(因为每次都会刷新数据)。
要求是编写一个存储过程,以便在登台区域中有新资产时,将它们作为新插入到prod中(BeginDate
为CURRENT_TIMESTAMP
,EndDate
为{ {1}}),与此同时,如果生产阶段的NULL
,Field1
或Field2
字段上的数据(在暂存中)不同,则将写入新记录与{{1}相同的FieldN
但AssetID
和BeginDate
的{{1}},以及具有相同组合的旧记录(CURRENT_TIMESTAMP
记忆,{{ 1}}被EndDate
)更新为NULL
的{{1}}。该存储过程没有参数,所有执行必须在同一存储过程中的2个表上进行。
你们中有人处理过类似的任务/要求吗?如果是,请分享您的解决方案吗?