我有两张桌子。
让我们说:
Table T1 with columns id,ref,a1,b1,c1,d1,e1
Table T2 with columns id,ref,a2,b2,c2,d2,e2
鉴于此,我需要根据whereT2(a2,c2,e2)
中的值更新几列。T1(a1,c1,e1)
T1.ref = T2.ref
ref=<certain value>
对于 ref 列的特定值,每个表中有许多记录。
我想针对 ref 列的一个特定值相对于T1更新T2 。其他记录将保持不变。
我目前正在通过删除所有行并从whereT2
插入当前行来执行此操作。T1
ref=<some value>
例如:如果ref 值=5
然后我执行这些步骤。
1. delete from T2 where ref=5;
2. insert into T2 (a2,c2,e2) select a1,c1,e1 from T1 where T1.ref = 5;
当然,这不是在两个表之间同步数据的好方法。
请建议我在 Oracle 中实现这一目标的有效解决方案。
我想我错过了一个重要的点。这两个表都有一列清楚地标识每条记录。所以我不希望记录在 T2 中,而 T1 中不存在。重申一下 - 对于列“ref”的值,两个表都返回多条记录,并且每条记录都有一个唯一的标识列。T1 中标识的那些记录只需要出现在 T2 中。
提前致谢!