oracle – ORA-00955“名称已被现有对象使用”
发布时间:2020-12-12 13:06:25 所属栏目:百科 来源:网络整理
导读:我需要修改现有的PK.因此我放弃重新创建它. ALTER TABLE B DROP CONSTRAINT PK_B;ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP","NR","HH","QUART"); 不幸的是,最后一个声明会给我一个错误ORA-00955 如果我创建PK约束,就像它最初定义的那样: ALTER
我需要修改现有的PK.因此我放弃重新创建它.
ALTER TABLE B DROP CONSTRAINT PK_B; ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP","NR","HH","QUART"); 不幸的是,最后一个声明会给我一个错误ORA-00955 如果我创建PK约束,就像它最初定义的那样: ALTER TABLE B ADD CONSTRAINT PK_B PRIMARY KEY ("TYP","HH"); 一切正常. 也许有一个与PRIMARY KEY CONSTRAINT相关联的INDEX,它也被命名为PK_B.您可以将其检查为: SELECT * FROM USER_INDEXES WHERE TABLE_NAME='<table_name>'; 如果这是真的,那么: ALTER INDEX "PK_B" RENAME TO "PK_XYZ"; 更新:关于ALTER INDEX声明,Justin在评论中提到的几个要点 Oracle隐式创建一个UNIQUE索引来支持PRIMARY KEY CONSTRAINT.因为,索引与主键的名称相同,并且现在主键被修改,所以最好根据旧主键的定义再次删除并重新创建索引. 我的结论: >主键约束通过唯一索引强制执行. Arup:Primary Keys Guarantee Uniqueness? Think Again.也是一个很好的演示,并且在其他方??面也非常详细 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ajax的重复提交问题,和bootstrapValidator校验冲突问题解决
- ruby-on-rails – 用prawn生成PDF – 如何在Prawn.generate
- 混合中值滤波器 ( Hybrid Median Filter ) C++ 实现
- 我的屌丝giser成长记-工作篇之A公司
- [2015年1月][01~11][cocos2d塔防游戏学习][设计模式学习]
- 为什么C不能有可选的透明垃圾收集器
- iphone – 部分内的部分 – UITableView –
- c# – 删除文件与目录重新创建性能
- fastjson生成JSON字符串的时候出现$ref
- oracle 11g R2 标准版 64位linux安装