讨论这个之前;需要跟大家提到一个概念-“主键”;其实主键是一种特殊的唯一索引;当建立一个主键是;在系统中其实建立了一个不能为空的唯一索引。他和唯一索引的区别也就是不能为空这么一点了。因此他能做到唯一识别表中的一条记录的作用。索引都有索引名在create index idx-name中定义;主键在定义是没有指定名称;但实际上系统会给自动命名一个unnn_nnn【n为数字】的一个名字。可以通过如下语句查得:【如查basetab_pps主键名字】
select constrname from sysconstraints where tabid in (select tabid from systables where tabname='basetab_pps');
下面可以谈谈如何恢复损坏得索引了:
1、 如果是普通得索引。这样就相对得简单了;删除并重建他就可以了。
drop index idx-name; create index idx-name on tabname(colname1,colname2…);
2、 如果是主键损坏;同样可以删除并重建他。
A、 删除主键 select constrname from sysconstraints where tabid in (select tabid from systables where tabname='tabname'); alter table tabname drop constraint cons_name;
B、 重建主键 alter table basetab_pps add constraint primary key (colname1,colname2…);