2014-01-07 3 views
0

이관 예를 들어 Larry의 시퀀스 번호를 2로 설정하면 Larry의 시퀀스를 3으로 변경하면 John은 1을, 다음으로 John은 1이고 Ana는 2가됩니다. 시도는 중첩 된 테이블을 사용하는 것입니다,하지만 난 2 테이블을 중첩하려고 힘든 시간을 보냈습니다. 당신이 쉬운 방법을 안다면 나는 감사 할 것입니다.정렬 방법 내가</p> <p>서열 이름 LAST_NAME이</p> <p>1 래리 올슨은</p> <p>2 존 설리반</p> <p>3 아나 페레 르</p> <p>내가 변화 노력이 테이블이 순서

답변

0

시퀀스 번호가 시퀀스에서 왔고이 값을 주변으로 이동하는 경우 새 숫자를 "작성"하지 않으면 제약 조건이 해제됩니다.

임시 테이블을 사용하여 tab1 (실제 테이블)에서 tmptab (임시 테이블)로 행을 이동합니다. tmptab에서 데이터를 업데이트하십시오. tab1에서 thre 행을 삭제 한 다음 tmptab에서 해당 행을 삽입하십시오.

중첩 테이블없이 이것을 시도하십시오 : tab1tmptab - 먼저 더미 테이블에 대한 경고 연습.

create table tmptab as 
(select * from tab1 where seq <= 3); 

update tmptab set seq =1 where name='Ana'; 
update tmptab set seq =2 where name='John'; -- this is just an example 
commit; 

delete from tab1 where seq<=3; 

insert into tab1 
values(seq, Name, Last_Name) 
select seq, Name, Last_Name 
from tmptab; 

commit; 

drop table tmptab;