sql - 在 oracle 数据库中,我们如何同时在两个表上维护相同的代理键(序列值)
问题描述
在我们的数据仓库中,我们需要加载 2 个粒度相同的表。两张表中的音量完全相同。在插入过程中,我需要同时加载相同的代理键(序列)。有没有办法实现这一目标?
解决方案
关于您的 ETL 流程有太多未知数,所以如果这太离谱了,我深表歉意。不过评论太长了。
INSERT ALL
您可以使用该命令同时插入多个表。像这样:
create sequence matt_s;
create table etl1 ( id number, other_data VARCHAR2(30));
create table etl2 ( id number, other_data VARCHAR2(30));
insert all
into etl1 (id, other_data) values ( matt_s.nextval, other_data )
into etl2 (id, other_data) values ( matt_s.nextval, other_data )
select /* dummy source data */
to_char(rownum) other_data
from dual src
connect by rownum <= 50;
源查询中的每一行都将插入到两个表中,并共享该id
列的公共值。
推荐阅读
- c - realloc noob 用法,在某些情况下工作,否则会出现段错误
- google-cloud-source-repos - Google Cloud Source Repositories:更改默认分支?
- apache-camel - 如何在异常时停止骆驼动态路由
- shell - 在部署之前检查 GCloud 项目的脚本
- python - 优化计算正态分布的 NumPy 脚本
- typescript - 交集类型如何与多态 this 和泛型结合使用?
- python - RuntimeError: 标量类型 Double 的预期对象,但在调用 _th_max 时为参数 #2 'other' 获得了标量类型 Float
- python - 如果列名在列表中,则将数据框中的列一起添加
- azure - Azure Active Directory 撤销给定 aad app-id 的一组用户会话
- pandas - 在另一列熊猫上删除具有特定条件的重复值