今天对一张创建了分区表的表进行update操作,正好需要修改的是创建分区的那一列,由于是要修改在分区表范围内的数据,所以无法修改。
然后搜了一下,需要修改row movement这个属性:alter table eq_excpdetail enable row movement;将该属性打开,然后就可以对分区列进行修改。关闭是alter table eq_excpdetail disable row movement;
将row movement设置为enable,有可能发生行的物理移动,行的rowid会变化,某 一行更新时,如果更新的是分区列,并且更新后的列值不属于原来的这个分区,如果开启了这个选项,就会把这行从这个分区中delete掉,并加到更新后所属 的分区。相当于一个隐式的delete+insert,但是不会触发insert/delete触发器。如果没有开启这个选项,就会在更新时报错。
当然row movement不只用于分区还用于闪回。