修改数据库数据报警告:updating partition key column would cause a partition change 什么原因?
发布网友
发布时间:2022-05-05 23:03
我来回答
共3个回答
懂视网
时间:2022-05-06 03:24
为了解决这个问题,可以使用如下命令更改分区表的属性: SQLgt; alter table DOM_REAL_CATEGORY_FL enable row movement; Tab
为了解决这个问题,可以使用如下命令更改分区表的属性:
SQL> alter table DOM_REAL_CATEGORY_FL enable row movement;
Table altered.
更改分区表的分区键值,,意味着要删除记录并重新插入一条新的记录,这会引起记录(Record)的移动,记录的Rowid会改变,相关索引需要进行维护。
SQL> update DOM_REAL_CATEGORY_FL set doc_level=101 where doc_level=51;
57024 rows updated.
Elapsed: 00:00:34.61
热心网友
时间:2022-05-06 00:32
这个主要是对分区的字段进行了更改, 导致该行需要移至另一个分区
在Oracle中,如果数据量大,一般会使用多个表分区,建表方式为:
create table table1(
logID NUMBER(18) not null,
CreateTime DATE default(sysdate),
)
PARTITION BY RANGE (CreateTime)
( PARTITION part1
VALUES LESS THAN (TO_DATE('2005-01-01','YYYY-MM-DD'))
TABLESPACE tablespace1,
PARTITION part2
VALUES LESS THAN (TO_DATE('2005-02-01','YYYY-MM-DD'))
TABLESPACE tablespace1,
PARTITION part3
VALUES LESS THAN (TO_DATE('2005-03-01','YYYY-MM-DD'))
TABLESPACE tablespace1)
当使用这样的结构的时候,如果在原有数据上进行Update操作,而Update操作恰恰是修改CreateTime这样的
用来区分表分区的字段,那么将可能出现错误:
原纪录是2005-01-21,如果改为2005-02-21,那么将会出现错误:
ORA-14402: updating partition key column would cause a partition change
热心网友
时间:2022-05-06 01:50
t_table1 是分区表,这个时间是分区的依据,更新了时间会导致数据的存储的分区发生变化。
语句没有问题,只是一条警告信息,提醒你要慎重操作。追问t_table1 是分区表,如果我就是要修改这条数据呢,怎么做?报警告以后是修改不了数据的。那怎么做才能修改这条数据,变更它的时间分区。
追答能修改数据,只是警告你慎重操作,没有说你不能做