Oracle并行添加主键的方法
2024-08-21 11:14:06
环境:Oracle 11.2.0.3
需求:生产一张表由于前期设计不当,没有主键。现需要添加主键,数据量很大,想并行建立。
1.直接添加,提示ora-3001:未实施的功能;只能单线程建立主键
SQL> alter table t add constraint pk_t primary key (object_id) using index online parallel 2; alter table t add constraint pk_t primary key (object_id) using index online parallel 2 ORA-03001: 未实施的功能 SQL> alter table t add constraint pk_t primary key (object_id) using index online; Table altered SQL> alter table t drop primary key; Table altered
2.考虑先并行添加惟一性索引,再添加主键
SQL> create unique index pk_t on t(object_id) parallel 2 online; Index created SQL> alter table t add constraint pk_t primary key (object_id); Table altered SQL> alter index pk_t noparallel; Index altered
3.对比主键和惟一性索引的区别
SQL> desc t
Name Type Nullable Default Comments
-------------- ------------- -------- ------- --------
OWNER VARCHAR2(30) Y
OBJECT_NAME VARCHAR2(128) Y
SUBOBJECT_NAME VARCHAR2(30) Y
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER Y
OBJECT_TYPE VARCHAR2(19) Y
CREATED DATE Y
LAST_DDL_TIME DATE Y
TIMESTAMP VARCHAR2(19) Y
STATUS VARCHAR2(7) Y
TEMPORARY VARCHAR2(1) Y
GENERATED VARCHAR2(1) Y
SECONDARY VARCHAR2(1) Y
NAMESPACE NUMBER Y
EDITION_NAME VARCHAR2(30) Y SQL> alter table t drop primary key; Table altered SQL> desc t
Name Type Nullable Default Comments
-------------- ------------- -------- ------- --------
OWNER VARCHAR2(30) Y
OBJECT_NAME VARCHAR2(128) Y
SUBOBJECT_NAME VARCHAR2(30) Y
OBJECT_ID NUMBER Y
DATA_OBJECT_ID NUMBER Y
OBJECT_TYPE VARCHAR2(19) Y
CREATED DATE Y
LAST_DDL_TIME DATE Y
TIMESTAMP VARCHAR2(19) Y
STATUS VARCHAR2(7) Y
TEMPORARY VARCHAR2(1) Y
GENERATED VARCHAR2(1) Y
SECONDARY VARCHAR2(1) Y
NAMESPACE NUMBER Y
EDITION_NAME VARCHAR2(30) Y
总结:
对于已有大量数据的表无法并行建立主键,可以先并行建立惟一性索引然后再加上主键。
主键不能为空,惟一性索引可以为空。
最新文章
- Mysql数据库主从心得整理
- WebService未能加载文件或程序集“ESRI.ArcGIS.XXX”或它的某一个依赖项
- Windows常用技巧集锦
- 如何催促Apple进行App审核
- iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent
- 初学AngularJS
- 视频资源下载方法[download video resources]
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)
- LightOj_1030 Discovering Gold
- ORA-01403: no data found
- iOS 10权限崩溃问题
- PowerDesigner中逆向工程将数据库中comment赋值到name
- APNS IOS 消息推送
- Nagle算法
- python安装json的方法;以及三种json库的区别
- Linux 用户打开进程数的调整
- SpringBoot多模块项目打包问题
- Java中Date, Calendar, SimpleDateFormat的相互转换
- 多个Linux发行版安装ss服务端
- CSU 1859 Gone Fishing(贪心)
热门文章
- DSY2287*消失之物
- html、canvas、视频灰度、反色
- 一篇关于匿名函数(function(){})()不错的文章
- 4.Powershell交互界面
- 一步一步学ROP之linux_x64篇
- 程序员的经济学系列——你不可不知的生存智慧——第一篇:小X是要成为IT精英的男人!
- 大白话讲解Promise(一)
- 如何使用Worktile进行敏捷项目开发管理
- 在SqlServer2008R2中,在一张表上加上insert、update、delete触发器(带游标)
- crossplatfrom---electron入门教程