亚马逊红移中的多对多交叉表
问题描述:
如何在普通SQL中执行类似于多对多基数表的一些最佳方法。亚马逊红移中的多对多交叉表
示例 - 三个表:产品(id标识,name varchar(max)),销售(id标识,customer varchar(max)),SalesLine(id标识,产品整数参考产品,销售整数参考销售):
INSERT INTO Product (name) VALUES ('new product');
INSERT INTO Sale (customer) VALUES ('new customer');
INSERT INTO SaleLine(product, sale) VALUES(?,?);
在postgresql中,像currval
这样的东西很有帮助,但这在amazon redshift中不可用。
我在想,也许还需要其他一些范例?
答
AFAIK redshift不支持插入返回/ currval /类似的东西。你可以看到这在亚马逊红移论坛https://forums.aws.amazon.com/thread.jspa?messageID=449390
如果你有一个串行插入(而不是来自多个线程)我的建议是不使用身份列,但维护高价值的pk和ref表和指定ID你自己。
P.S此解决方案也适用于平行插入它只是有点棘手。