我有两个需要在数据库中更新的表。我正在从另一个数据库中的数据更新这些表。如果表 1 中的记录被更新,我需要将表 1 中的旧信息存储在表 2 中。我需要适当的逻辑来进行比较,然后在需要时更新表 2。我的问题是,最好的方法是什么?我认为存储过程将是要走的路,但我不确定。
这是一个更直观的解释。
Table 1
Student Grade
james 6
sarah 5
Table 2
EMPTY
可以说下面的数据是我从另一个数据库中提取的数据。
Other Database
Student Grade
james 6
sarah 4
tom 7
这是一些草率的逻辑,可能有助于解释我需要做什么。
--If records match do nothing
IF otherDatabase.student = table1.student AND otherDatabase.grade = table1.grade THEN do nothing
--If partial match copy old data to table 2 and insert new data to table1
IF otherDatabase.student = table1.student AND otherDatabse.grade != table1.grade
THEN copy table1.student to table2.student AND copy table1.grade to table2.grade THEN UPDATE table1.grade from otherDatabase.grade
--If no match copy new data to Table1
IF otherDatabase.student != table1.student AND otherDatabase.grade != table1.grade THEN INSERT otherDatabase.student AND otherDatabase.grade INTO table1
在我的示例中,James 不会被触动,sarah 将被移至表 2,然后以新成绩插入表 1,而汤姆将被插入表 1。
如果这没有意义,我很抱歉。如果需要,请允许我澄清一下。谢谢