2015-01-09 2 views
0

sybase에서 netezza로 프로 시저를 내 보냅니다. 일부 프로 시저에는 "Update canceled : 복수의 값이 행을 결합하여 "두 데이터베이스에 데이터 및 테이블 구조는 동일하며, 데이터와 쿼리가 동일한 경우베이스에 있지만 Sybase에서 Netezza로 - 여러 행의 값으로 대상 행을 업데이트하려고 시도합니다.

UPDATE table1 t1 SET t1.column1=t2.column1 
FROM table2 t2 
WHERE t1.column2=t2.column2; 

네티

에서이 쿼리 웍은 무엇이 오류가 발생할 수 있을까?

답변

0

이는 테이블 2에 적어도 2 개의 행을 조인하는 table1에 적어도 하나의 행이있어 어떤 값이 column1로 끝날 지 혼란을 야기하기 때문에 발생합니다. 예를 들어

: 그것은 오류가 주어지고 트랜잭션이 롤백되도록 표에서 컬럼 1, 2 또는 3으로 설정되어야하는지 분명하지 않다

select * from table1; 
COLUMN1 | COLUMN2 
---------+--------- 
     1 |  1 
(1 row) 

select * from table2; 
COLUMN1 | COLUMN2 
---------+--------- 
     3 |  1 
     2 |  1 
(2 rows) 


UPDATE table1 t1 SET t1.column1=t2.column1 
FROM table2 t2 
WHERE t1.column2=t2.column2; 

ERROR: Update canceled: attempt to update a target row with values from multiple join rows 

.

그러나 sybase가 이것을 허용하는 이유는 말할 수 없습니다.

관련 문제