如何更新分区关键字

如何更新分区关键字 [原创
2008-8-7 10:51:14]

 字号:大 中 小

为提高查询速度,经常为表建分区,但如何修改表中某条记录的分区呢?

如表A中,有个分区关键字为area,当update时,会报错:

Ora-14402 更新分区关键字列将导致分区的更改。

解决办法如下:

1、执行如下命令,使表A允许记录转移到其他分区:

alter table A enable row movement;

2、进行修改,就不会报错了。

select * from A where
emid=’001’  for update 
3、修改完毕后,执行如下命令,使表A不允许记录转移到其他分区

alter table A
 disable row movement;

执行以上三步就可以了,但是修改之后对我们有何影响呢?影响就是,记录的rowid发生了变化,其实oracle后台自动会将原来的rowid记录delete掉,然后在insert一条新记录,若业务中关联rowid的可就要注意了。通过原理,其实也可以先insert一条新数据,然后delete原来的数据,也可以实现对分区关键字的更改。

时间: 2024-07-31 23:55:43

如何更新分区关键字的相关文章

ORA-14402: 更新分区关键字列将导致分区的更改

默认情况下,oracle的分区表对于分区字段是不允许进行update操作的,如果有对分区字段行进update,就会报错——ORA-14402: 更新分区关键字列将导致分区的更改.這種情況可以通過開啟表的行移動來允許對分區字段的update 操作:      alter table xxx enable row movement;     之後就可以成功update 分區字段,同時因為行的物理移動,導致rowid發生變化,對應列值的索引葉塊 會標記為刪除,插入新的葉塊,重定義完分區后,記得關閉行移

ORA-14402:更新分区关键字列将导致分区更改(分区表注意)

建立完分区表后一定要和开发确认一点,就是是否会修改分区字段.因为update分区字段到其他分区时候,会报错.解决办法:开启表的行转移功能 alter table XX enable row movement 这样在update以后,会在老分区删除数据,新分区插入数据.

仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 我们重新来看看这个效果 想实现这个逻辑,其实就是监听两个View的显示隐藏加上一点小动画,所以我们在布局上是这样的 search_fragment.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.c

partproble在RHEL 6下无法更新分区信息

在RHEL5.x版本下面,在添加磁盘分区等操作后,一直使用partproble命令使内核重新读取分区表信息,从而不用重新启动.但是最近在RHEL 6(Red Hat Enterprise Linux Server release 6.6 (Santiago))下,使用partprobe出现错误. [[email protected] ~]# lsof /dev/sda [[email protected] ~]# partprobe /dev/sda Warning: WARNING: the

ORA-14300: 分区关键字映射到超出允许的最大分区数的分区

环境为:Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production 对象表为按天的自动分区表: PARTITION BY RANGE ("START_TIME") INTERVAL (NUMTODSINTERVAL(1,'DAY')) 原因为:当START_TIME的值为NULL时,然后向分区对象表插入数据,数据库不知道将该条记录插入到哪个分区,导致报错. 解决方法:需要给START_TIME

oracle下更改分区字段

我们常常在更改oracle中分区字段时,会出现以下错误提示 ORA-14402: 更新分区关键字列将导致分区的更改 按照如下操作 打开row movement属性SQL> alter table tablename enable row movement; Table altered 再次执行update操作

Oracle实践--PL/SQL基础之表分区

PL/SQL基础入门之表分区 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. ---------------------------------------------

Oracle分区

目录 Oracle分区 0 一.Oracle分区理论知识 1 二.分区表的实现方式 1 1.范围分区(range partition table) 1 2.列表分区(list partitioning) 3 3.散列分区(hash partitioning) 4 4.间隔分区(interval partitioning) 5 5.引用分区(reference partitioning) 6 6.组合分区(composite partitioning) 7 7.行移动(row movement)

[MySQL Reference Manual] 20 分区

20 分区 20 分区... 1 20.1 MySQL的分区概述... 2 20.2 分区类型... 3 20.2.1 RANGE分区... 3 20.2.2 LIST分区... 5 20.2.3 COLUMNS分区... 7 20.2.3.1 RANGE COLUMNS分区... 7 20.2.3.2 LIST COLUMNS分区... 7 20.2.4 Hash分区... 8 20.2.4.1 LINEAR HASH分区... 8 20.2.5 Key分区... 9 20.2.6 子分区..