问题描述
嗨,汤姆,
我有2个表A和B。列 “id” 在两个表中很常见。
创建表A (id号主键,类型为varchar2(20),desc1 varchar2(20));
创建表B (id号主键,类型为varchar2(20));
这两个表中的列 “类型” 可以具有 (1,2,3) 中的值。
最初,当使用所有3列值填充表A时,仅将表A中的id插入到表B (类型列值不会在B中更新)。
现在,当表A的类型列中有更新时,我们希望将更新的值插入到表B类型列中。同样,如果表B的类型列中有更新,则应在表A中更新该值以获取相应的id。
基本上,我们希望id在两个表中类型列相同。
您能否让我知道实现此目标的方法。
谢谢,
子哈希
我有2个表A和B。列 “id” 在两个表中很常见。
创建表A (id号主键,类型为varchar2(20),desc1 varchar2(20));
创建表B (id号主键,类型为varchar2(20));
这两个表中的列 “类型” 可以具有 (1,2,3) 中的值。
最初,当使用所有3列值填充表A时,仅将表A中的id插入到表B (类型列值不会在B中更新)。
现在,当表A的类型列中有更新时,我们希望将更新的值插入到表B类型列中。同样,如果表B的类型列中有更新,则应在表A中更新该值以获取相应的id。
基本上,我们希望id在两个表中类型列相同。
您能否让我知道实现此目标的方法。
谢谢,
子哈希
专家解答
如果表应该具有相同的值...为什么不只有一张表?
您可以使用合并做更新-如果-存在,插入-如果-不存在逻辑。所以每次插入或更新后,你可以合并到B:
然后,您可以进行反向操作以将B上的更改传输回A。
但是!
这为您打开了各种并发问题。
如果在会话1中运行:
在第二节中:
然后在每个之后运行适当的合并,您将陷入僵局!
因此,您需要仔细考虑当两个人同时编写冲突的更改时该怎么办。
为什么又需要两张表?
您可以使用合并做更新-如果-存在,插入-如果-不存在逻辑。所以每次插入或更新后,你可以合并到B:
create table A ( id number primary key, type varchar2(20), desc1 varchar2(20) ); create table B ( id number primary key, type varchar2(20) ); insert into a values ( 1, 1, 'a' ); merge into b using a on ( a.id = b.id ) when matched then update set b.type = a.type when not matched then insert values ( a.id, a.type ); select * from b; ID TYPE 1 1 update a set type = 2; merge into b using a on ( a.id = b.id ) when matched then update set b.type = a.type when not matched then insert values ( a.id, a.type ); select * from b; ID TYPE 1 2复制
然后,您可以进行反向操作以将B上的更改传输回A。
但是!
这为您打开了各种并发问题。
如果在会话1中运行:
update a set type = 1;复制
在第二节中:
update b set type = 3;复制
然后在每个之后运行适当的合并,您将陷入僵局!
因此,您需要仔细考虑当两个人同时编写冲突的更改时该怎么办。
为什么又需要两张表?
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
805次阅读
2025-04-18 14:18:38
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
606次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
552次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
542次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
512次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
507次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
476次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
387次阅读
2025-05-05 19:28:36
Oracle数据库Hint大全,31个使用案例,速来下载!
陈举超
372次阅读
2025-04-16 21:25:19
Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-00600)
潇湘秦
339次阅读
2025-04-16 17:05:16