如何在普通的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中不可用。
我想也许还需要其他一些范例?
答案 0 :(得分:0)
AFAIK redshift不支持插入返回/ currval /类似的东西。您可以在亚马逊红移论坛https://forums.aws.amazon.com/thread.jspa?messageID=449390
中看到这一点如果你有一个串行插入(不是来自多个线程),我建议不要使用Identity列,而是要维护一个具有高值的pk和ref表,并自己指定ID。
P.S这个解决方案也适用于并行插入它只是有点棘手。