刪除主鍵時(shí)是否會(huì)刪除索引?
專注于為中小企業(yè)提供網(wǎng)站建設(shè)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)云龍免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
答案取決于索引是創(chuàng)建主鍵時(shí)自動(dòng)創(chuàng)建的,還是創(chuàng)建主鍵前手工創(chuàng)建的。
測試如下:--建表create
table
hqy_test(id
integer)
;--建索引create
(unique)index
idx_hqy_id
on
hqy_test(id)
;--加主鍵alter
table
hqy_test
add
constraint
pk_hqy_id
primary
key
(id);
select
index_name
from
user_indexes
where
index_name='IDX_HQY_ID';IDX_HQY_ID
---刪除主鍵
alter
table
hqy_test
drop
constraint
pk_hqy_id;或者:alter
table
hqy_test
drop
primary
key;
也是行的。
select
index_name
from
user_indexes
where
index_name='IDX_HQY_ID';
IDX_HQY_ID
==沒有刪除索引
--刪除索引,增加主鍵并自動(dòng)創(chuàng)建索引
drop
index
idx_hqy_id;
alter
talbe
hqy_test
add
constraint
pk_hqy_id
primary
key(id)
using
index;
select
index_name
from
user_indexes
where
index_name='PK_HQY_ID';
PK_HQY_ID
==自動(dòng)創(chuàng)建了索引
--刪除主鍵約束
alter
table
hqy_test
drop
primary
key;
select
index_name
from
user_indexes
where
index_name='PK_HQY_ID';
無
==索引被刪除了
如果刪除主鍵時(shí),希望同時(shí)刪掉索引,則應(yīng)該增加drop
index選項(xiàng),從而不管索引是否是創(chuàng)建主鍵時(shí)自動(dòng)創(chuàng)建的,即:alter
table
hqy_test
drop
primary
key
drop
index;
只能一個(gè)個(gè)刪除:
alter
table
表名
drop
index
索引名;
所以不想每次只刪除一個(gè)所以然后再重建一次索引,我想一次性刪除那些多余的索引,這樣索引只需要重建一次
----------------------
你這話有問題.說明你對(duì)其機(jī)制理解有誤.
mysql下不同存儲(chǔ)引擎索引的組織方式有點(diǎn)不同的
如果你是myisam,可以一個(gè)個(gè)直接刪除
如果你是innodb的,則應(yīng)先刪除非主鍵索引,到最后才刪除主鍵索引
第一步,創(chuàng)建數(shù)據(jù)庫表t_tree_info,命令如下:
create table t_tree_info(
id int(8),
tno int(4),
tname varchar(20),
tdesc varchar(100)
);
如下圖所示:
第二步,向表里插入3條數(shù)據(jù),插入后查看表記錄,如下圖所示:
第三步,創(chuàng)建數(shù)據(jù)庫索引tree_name,命令如下:
create index tree_name on t_tree_info (tname(20));
如下圖所示:
第四步,查看數(shù)據(jù)庫表索引,利用show命令
show index from t_tree_info;
如下圖所示:
第五步,重建索引,利用repari命令
repair table t_tree_info quick;
如下圖所示:
第六步,索引創(chuàng)建好了,在不使用該索引時(shí),可以刪除
drop index tree_name on t_tree_info;
如下圖所示: