修改分區數據問題:
1、如果修改分區列時:
修改後導致修改的行所在分區發生改變
修改後分區沒有發生改變
2、修改非分區列
修改後不會導致修改行所在分區改變
第一種:導致修改後行所在分區發生變化,需要將所在表設置爲 行可以移動
alter table partition_table enable row movement;
修改操作可能會導致rowid改變,所以要啓動行移動(因爲不同的分區屬於不同的段,rowid的中包含了段信息,索引會導致rowid改變)
執行行遷移:先刪除該記錄,在插入該記錄,相當於完成兩個操作。雖然這樣,oracle把它看成一個更新,不會觸發insert和delete觸發器,只會觸發update觸發器。
注意:在外鍵約束中可能不允許,所以delete子表時不會觸發delete觸發器。因爲行移動開銷非常大。如果一個系統中頻繁修改分區鍵,這種操作會導致大量行移動,讓系統非常糟糕設計