Amazon redshift 红移同时插入到混合id表和另一个表中 处境
输出Amazon redshift 红移同时插入到混合id表和另一个表中 处境,amazon-redshift,Amazon Redshift,输出out表中的值来自某些源表、source1或source2。所有这些表都有唯一的id,还有另一个表mix保持这些id之间的关系 问题 如果更新了ID为sId的source1,我想用新的uniquenewIds将值输入out,同时用(newId,sId,source1)更新mix表 认为做两步(以下)比较慢/效率较低是错误的吗 期望值 我想同时将数据输入到两个表中,因为它们不相关,我想知道其中是否有任何一个表失败。如果这是我的方式,它会像: 选择 s、 id作为sId,s.value作为val
out
表中的值来自某些源表、source1
或source2
。所有这些表都有唯一的id
,还有另一个表mix
保持这些id之间的关系
问题
如果更新了ID为sId
的source1
,我想用新的uniquenewId
s将值输入out
,同时用(newId,sId,source1)更新mix
表
认为做两步(以下)比较慢/效率较低是错误的吗
期望值
我想同时将数据输入到两个表中,因为它们不相关,我想知道其中是否有任何一个表失败。如果这是我的方式,它会像:
选择
s、 id作为sId,s.value作为value,fn_uuid()作为newId,'source1'作为sourceName,
进入
[mix(newId,sId,sourceName),out(newId,value)]
从…起
资料来源1-s;
当前方法
选择fn_uuid()作为newId,id作为sId,“source1”作为source1中的source
然后
选择m.Id,s.value INTO out FROM source1 s在s.Id=m.sId上加入mix m
假设fn\u uuid()
你有没有考虑过使用存储过程来实现这一点?@JoeHarris没有,但这也不是我想要的。我希望有一个同时更新两个表的查询。不能在一个查询中更新两个表。这就是交易的目的<代码>开始;{query1};{query2};承诺代码>:)你有没有考虑过使用存储过程来实现这一点?@JoeHarris没有,但这也不是我想要的。我希望有一个同时更新两个表的查询。不能在一个查询中更新两个表。这就是交易的目的<代码>开始;{query1};{query2};承诺代码>:)
CREATE OR REPLACE FUNCTION public.fn_uuid()
RETURNS characte`r varying AS
' import uuid
return uuid.uuid1().__str__()
'
LANGUAGE plpythonu VOLATILE;