-- 创建原表A
create table A
(
ABC NUMBER not null
);
-- 表A必须包括一个主键
alter table A add constraint P primary key (ABC);
--分析表A是否可以在线重建,如果报错则不可以
EXEC sys.dbms_redefinition.can_redef_table('DLYX','A');
-- 创建一个中间表A1,用于存储原来数据,约束不可重名
create table A1
(
ABC NUMBER not null
);
alter table A1 add constraint P1 primary key (ABC);
--开始重建
EXEC sys.dbms_redefinition.start_redef_table('DLYX','A','A1');
--结束重建
EXEC sys.dbms_redefinition.finish_redef_table('DLYX','A','A1');
--终止重建(如果不想重建)
EXEC sys.dbms_redefinition.abort_redef_table('DLYX','A','A1');
--删除中间表A1
DROP TABLE A1;
-- 重命名表约束
alter table A drop constraint P1 cascade;
alter table A add constraint P primary key (ABC);
博客展示了数据库表A在线重建的操作过程。包括创建原表A并添加主键,分析是否可在线重建,创建中间表A1,开始、结束或终止重建,删除中间表A1,最后重命名表约束,为数据库表重建提供了代码示例。
3400

被折叠的 条评论
为什么被折叠?



