코드 코드명 seq
1 x1 1
2 x2 2
3 x3 3
4 x4 4
5 x5 5
가 있을때 6이라는 코드의 코드명이 x21이 추가 되었을때...
코드명으로 정렬해서 다시 seq 순서를 잡는법좀 가르쳐 주세요..
없을것 같은데요~~
그냥 recreate 해야 할것 같은데요...
index를 잡으면 될라나?.안될것 같아요(된다고 해도 우선 overhead가
무지하게 크겠죠)
이렇게 하면 어떨까요...
먼저 seq를 재정의하여 임시테이블에 넣습니다.
select a.코드, a.코드명, count(*) rowcntinto #imsi from 테이블 a, 테이블 b where b.코드명 <= a.코드명 group by a.코드명 order by a.코드명 ) dwhere c.a=d.a
위의 쿼리에서 #imsi에 저장하지 않고 그냥 보면 코드명으로 정렬된
쿼리를 얻을 수 있습니다.
이제, update를 하면
update 테이블 set seq = b.rowcntfrom 테이블 a, #imsi bwhere a.코드 = b.코드
그리고 결과는
select * from 테이블 order by 코드명
하시면 됩니다.