环境: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
总结:
对于已有大量数据的表无法并行建立主键,可以先并行建立惟一性索引然后再加上主键。
主键不能为空,惟一性索引可以为空。

最新文章

  1. Mysql数据库主从心得整理
  2. WebService未能加载文件或程序集“ESRI.ArcGIS.XXX”或它的某一个依赖项
  3. Windows常用技巧集锦
  4. 如何催促Apple进行App审核
  5. iOS “请在微信客户端打开链接” UIWebview加载H5页面携带session、cookie、User-Agent信息 设置cookie、清除cookie、设置User-Agent
  6. 初学AngularJS
  7. 视频资源下载方法[download video resources]
  8. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与目录(持续更新中...)
  9. LightOj_1030 Discovering Gold
  10. ORA-01403: no data found
  11. iOS 10权限崩溃问题
  12. PowerDesigner中逆向工程将数据库中comment赋值到name
  13. APNS IOS 消息推送
  14. Nagle算法
  15. python安装json的方法;以及三种json库的区别
  16. Linux 用户打开进程数的调整
  17. SpringBoot多模块项目打包问题
  18. Java中Date, Calendar, SimpleDateFormat的相互转换
  19. 多个Linux发行版安装ss服务端
  20. CSU 1859 Gone Fishing(贪心)

热门文章

  1. DSY2287*消失之物
  2. html、canvas、视频灰度、反色
  3. 一篇关于匿名函数(function(){})()不错的文章
  4. 4.Powershell交互界面
  5. 一步一步学ROP之linux_x64篇
  6. 程序员的经济学系列——你不可不知的生存智慧——第一篇:小X是要成为IT精英的男人!
  7. 大白话讲解Promise(一)
  8. 如何使用Worktile进行敏捷项目开发管理
  9. 在SqlServer2008R2中,在一张表上加上insert、update、delete触发器(带游标)
  10. crossplatfrom---electron入门教程