2017-05-06 1 views
0

의 같은 값은 나는이처럼 보이는 테이블을 갱신해야합니다업데이트 오류 - 기본 키

enter image description here

기본 키는 복합이다 - id_planupor_cislo.

예 : id_planu = '8' AND por_cislo = '5', 나는 문제가있다 por_cislo = por_cislo+1

같은 por_cislo > 5을 가진 모든 행을 증가해야하기 때문에 내가 그렇게 할 때 그것은 '6' 어디에

UPDATE table SET por_cislo = por_cislo+1 WHERE id_planu = '8' AND por_cislo > '5' 

por_cislo = '7'의 값이 설정됩니다. 그래서 내가받은 오류의 이유가 기본 키 (8,7)의 동일한 값을 가진 두 개의 행이 있습니다.

올바른 방법으로 어떻게해야합니까?

+0

. 다른 레코드에 대해 키를 재사용하고 모든 것을 수용하기를 원하지 않습니다. 새 키를 사용하여 새 레코드를 생성하고 오래된 레코드를 다시 사용하지 마십시오. – Glenn

답변

0

당신이 필요로하는 다음과 같이 ORDER BY 절을 추가하는 것입니다 : 좋은 아이디어 같은 소리하지 않는 기본 키를 수정 UPDATE table SET por_cislo = por_cislo+1 WHERE id_planu = '8' AND por_cislo > '5' ORDER BY por_cislo DESC