本篇内容介绍了“怎么解决ORACLE在修改主键时出现ORA-00955的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
ORACLE在修改主键时出现ORA-00955的解决方法
ORA-00955:名称已由现有对象使用
Oracle创建复合主键
以药库的drug_stock表为例,需要在主键中增加一个字段:PUTINSTORAGE_DATE
原来的主键名:PK_DRUG_STOCK,键值为:DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE
修改后的主键名:PK_DRUG_STOCK,键值为:DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE, PUTINSTORAGE_DATE
--删除主键
ALTER TABLE PHARMACY.DRUG_STOCK DROP PK_DRUG_STOCK;
--删除主键索引
drop index PHARMACY.DRUG_STOCK_I_2;
drop index PHARMACY.DRUG_STOCK_I_3;
--增加复合主键
-- Create/Recreate primary, unique and foreign key constraints
alter table PHARMACY.DRUG_STOCK
add constraint PK_DRUG_STOCK primary key (DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE, PUTINSTORAGE_DATE)
using index
tablespace TSP_PHARMACY
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 2M
next 1M
minextents 1
maxextents unlimited
);
--创建索引
-- Create/Recreate indexes
create index PHARMACY.DRUG_STOCK_I_2 on PHARMACY.DRUG_STOCK (DRUG_CODE, DRUG_SPEC)
tablespace TSP_PHARMACY
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 640K
next 1M
minextents 1
maxextents unlimited
);
create index PHARMACY.DRUG_STOCK_I_3 on PHARMACY.DRUG_STOCK (STORAGE)
tablespace TSP_PHARMACY
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
“怎么解决ORACLE在修改主键时出现ORA-00955的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。