2013-04-24 4 views
2

일반 SQL의 많은 것에서 많은 카디널리티 테이블과 비슷한 것을 어떻게하는 것이 가장 좋은 방법일까요?아마존 레드 쉬프트의 많은 교차 테이블들

예 - 제품 ID ID, 이름 varchar (최대), 판매 (ID 신원, 고객 varchar (최대)), SalesLine (ID 신원, 제품 정수 참조 제품 정수, 판매 정수 참조 판매) :

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

currval과 같은 postgresql의 항목은 유용하지만 아마존 레드 쉬프트에서는 사용할 수 없습니다.

다른 패러다임이 필요하다고 생각합니까?

답변

0

AFAIK redshift는 삽입 반환/currval/비슷한 것을 지원하지 않습니다. 아마존 레드 쉬프트 포럼에서 이것을 볼 수 있습니다 https://forums.aws.amazon.com/thread.jspa?messageID=449390

멀티 스레드가 아닌 직렬 삽입이있는 경우 Identity 열을 사용하지 말고 pk 및 높은 값의 ref 테이블을 유지하고 ID를 지정하십시오 당신 자신.

P.S이 솔루션은 병렬 삽입에도 약간 더 까다 롭습니다.