2

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

示例 - 三个表:Product(id identity, name varchar(max)), Sale(id identity,customer varchar(max)), SalesLine(id identity, product integer references product, sale integer references sale):

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

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

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

4

1 回答 1

0

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

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

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

于 2013-07-01T10:45:23.017 回答