小弟先有如下问题:一个表原来的PK是 id1+str1+str2 列
先修改成id1+str1+str3列
而这三列现在当前数据库的数据有重复的情况, 小弟现在用sql:
ALTER table a add
constraint PK_a primary key (id1,str1,str3)
USING INDEX TABLESPACE ts
ENABLE NOVALIDATE;但是还是提示会出错,哪位大虾给帮忙一下~~
急啊!在线等!!!!
先修改成id1+str1+str3列
而这三列现在当前数据库的数据有重复的情况, 小弟现在用sql:
ALTER table a add
constraint PK_a primary key (id1,str1,str3)
USING INDEX TABLESPACE ts
ENABLE NOVALIDATE;但是还是提示会出错,哪位大虾给帮忙一下~~
急啊!在线等!!!!
解决方案 »
- select length(to_char(24,'00')) from dual 值怎么为3??
- SQL 错误: ORA-00922:
- ORA-00907: 缺少右括号??TOAD,SQL*Plus里能执行
- 为何提示我 "权限不足". 可我是 system, scott的用户登陆的呀?
- case的用法
- 项目危机!没用事务,数据表也经常被锁!怎么找原因?//--- 分是小事,100不够,到时候再给
- 请问怎么在一个存储过程里实现另外一个存储过程(超级难题~~~~~~~~~~~~~~~~~~~~~~~~~~~)
- 數据文件太大不能啟動的問題
- 有关口令的问题
- 表复制问题求教,谢谢
- 怎样在数据库中查找一个为空的数值?
- 插入整点时间瓣问题
enable novalidate不行?
希望改成id1, str1, str3我的步骤:
Alter table a drop primary key drop index;
ALTER table a add
constraint PK_a primary key (id1, str1, str3)
USING INDEX TABLESPACE ts
ENABLE NOVALIDATE;
提示的错误:
SQL> ALTER table evanpk add
2 constraint PK_evanpk primary key (id1, str1, str2)
USING INDEX TABLESPACE WBXOBJ_LARGE_IDX
3 4 ENABLE NOVALIDATE;
constraint PK_evanpk primary key (id1, str1, str2)
*
ERROR at line 2:
ORA-02437: cannot validate (TEST.PK_EVANPK) - primary key violated
alter table t1 add constraint pk_t1 primary key(c1) enable novalidate
*
第 1 行出现错误:
ORA-02437: 无法验证 (TEST.PK_T1) - 违反主键
SQL> create index idx_t1 on t1(c1);索引已创建。SQL> alter table t1 add constraint pk_t1 primary key(c1) using index idx_t1 enab
le novalidate;表已更改。SQL> insert into t1 values(2,2);已创建 1 行。SQL> insert into t1 values(2,3);
insert into t1 values(2,3)
*
第 1 行出现错误:
ORA-00001: 违反唯一约束条件 (TEST.PK_T1)
SQL>