ITPub博客

首页 > 数字化转型 > ERP > ORACLE在修改主键时出现ORA-00955的解决方法

ORACLE在修改主键时出现ORA-00955的解决方法

原创 ERP 作者:xypincle 时间:2017-02-19 21:19:42 0 删除 编辑

  1. ORACLE在修改主键时出现ORA-00955的解决方法

  2. ORA-00955:名称已由现有对象使用

  3. Oracle创建复合主键

  4. 以药库的drug_stock表为例,需要在主键中增加一个字段:PUTINSTORAGE_DATE
  5. 原来的主键名:PK_DRUG_STOCK,键值为:DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE
  6. 修改后的主键名:PK_DRUG_STOCK,键值为:DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE, PUTINSTORAGE_DATE

  7. --删除主键

  8. ALTER TABLE PHARMACY.DRUG_STOCK DROP PK_DRUG_STOCK;

  9. --删除主键索引

  10. drop index PHARMACY.DRUG_STOCK_I_2;
  11. drop index PHARMACY.DRUG_STOCK_I_3;

  12. --增加复合主键
  13. -- Create/Recreate primary, unique and foreign key constraints
  14. alter table PHARMACY.DRUG_STOCK
  15.   add constraint PK_DRUG_STOCK primary key (DRUG_CODE, DRUG_SPEC, FIRM_ID, PACKAGE_SPEC, BATCH_NO, STORAGE, PUTINSTORAGE_DATE)
  16.   using index
  17.   tablespace TSP_PHARMACY
  18.   pctfree 10
  19.   initrans 2
  20.   maxtrans 255
  21.   storage
  22.   (
  23.     initial 2M
  24.     next 1M
  25.     minextents 1
  26.     maxextents unlimited
  27.   );
  28.   
  29.  --创建索引
  30.  -- Create/Recreate indexes
  31. create index PHARMACY.DRUG_STOCK_I_2 on PHARMACY.DRUG_STOCK (DRUG_CODE, DRUG_SPEC)
  32.   tablespace TSP_PHARMACY
  33.   pctfree 10
  34.   initrans 2
  35.   maxtrans 255
  36.   storage
  37.   (
  38.     initial 640K
  39.     next 1M
  40.     minextents 1
  41.     maxextents unlimited
  42.   );
  43. create index PHARMACY.DRUG_STOCK_I_3 on PHARMACY.DRUG_STOCK (STORAGE)
  44.   tablespace TSP_PHARMACY
  45.   pctfree 10
  46.   initrans 2
  47.   maxtrans 255
  48.   storage
  49.   (
  50.     initial 64K
  51.     next 1M
  52.     minextents 1
  53.     maxextents unlimited
  54.   );

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28878983/viewspace-2133887/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle取年和月
请登录后发表评论 登录
全部评论

注册时间:2013-05-11

  • 博文量
    208
  • 访问量
    212351