SQL小小擂臺------請用一個sql更新主鍵列

zhuojm發表於2007-11-01

create table myobject
as
select rownum as id, a.* from all_objects a
where rownum<=5000;

alter table MYOBJECT
add constraint pk_myobject primary key (ID);

create table mychange(id1 number,id2 number);

declare
i integer;
begin
for i in 1..500
loop
if mod(i,7)=0 then
--此處是模擬產生資料,ID1,ID2之間沒有關聯關係,是隨機的
insert into mychange(id1,id2) values(i,i+1000);
end if;
end loop;
end;

說明:
請根據mychange表的資料來更新myobject表.
更新方式為把myobject表的id根據mychange中的兩個欄位對調.
比如 mychange 中的一條資料為 7,1007
那麼 需要把myobject中id為7的記錄的id改為1007,id為1007的記錄改為7.

注意mychange表中的資料是沒有規律的,此處有差為1000的關係只是為了
產生資料方便.

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/698002/viewspace-980290/,如需轉載,請註明出處,否則將追究法律責任。

相關文章