亚马逊红移中有多对多的交叉路口表

时间:2013-04-24 13:49:08

标签: sql amazon-redshift

如何在普通的sql中执行类似于多对多基数表的最佳方法。

示例 - 三个表:产品(标识标识,名称varchar(最大)),销售(标识标识,客户varchar(最大)),SalesLine(标识标识,产品整数参考产品,销售整数参考销售):

INSERT INTO Product (name) VALUES ('new product');
INSERT INTO Sale (customer) VALUES ('new customer');
INSERT INTO SaleLine(product, sale) VALUES(?,?);

在postgresql中,像currval这样的东西很有帮助,但这在amazon redshift中不可用。

我想也许还需要其他一些范例?

1 个答案:

答案 0 :(得分:0)

AFAIK redshift不支持插入返回/ currval /类似的东西。您可以在亚马逊红移论坛https://forums.aws.amazon.com/thread.jspa?messageID=449390

中看到这一点

如果你有一个串行插入(不是来自多个线程),我建议不要使用Identity列,而是要维护一个具有高值的pk和ref表,并自己指定ID。

P.S这个解决方案也适用于并行插入它只是有点棘手。