작은공
137
2020-03-04 10:47:04
2
261

DB에서 행 삭제 후에 다른 행들 값을 변경해야 하는 사항 때문에 질문있습니다.


현재 데이터 베이스에 SERNO라고 순번이 들어 간 칼럼이 있습니다.

데이터 베이스에서 serno가 2인 것을 지우면 3인 것들 부터는 현재 serno에서 -1인 값으로 한번에 변경 하는 방법이 없을까요??


현재 작성 중인 쿼리는 이런데


DELETE FROM PRICE
		WHERE IT = @ITE AND PC = @PC AND SALE = @SALE AND SERNO = @SERNO

		UPDATE PRICE
		SET SERNO = 
			(
			SELECT SERNO - 1 
			FROM PRICE
			WHERE IT = @IT AND PC = @PC AND PUR = @PUR AND SERNO > @SERNO
			)
		WHERE IT = @IT AND PC = @PC AND SALE = @SALE AND SERNO > @SERNO

당연하게도 set안에 서브쿼리문 결과 값이 1개 초과한다고 오류가 나는데요.

어떤 식으로 해줘야 SERNO를 한번에 바꿔 줄수 있을지 모르겠습니다.

0
0
  • 답변 2

  • 잼재재미
    600
    2020-03-04 11:01:28

    맞게 이해한건지 모르겠는데


    UPDATE PRICE

    SET SERNO = (SERNO - 1)

    WHERE IT = @IT AND PC = @PC AND SALE = @SALE  AND SERNO > @SERNO


    대략 이렇게하면 되지 않나요.

    너무 어렵게 생각하신듯

    1
  • 작은공
    137
    2020-03-04 11:15:00

    아 됩니다.

    UPDATE를 자주 안쓰다 보니까 이상하게 생각했네요ㅎㅎ

    답변 감사합니다.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.