刪除主鍵時是否會刪除索引?
創(chuàng)新互聯(lián)服務(wù)項目包括潢川網(wǎng)站建設(shè)、潢川網(wǎng)站制作、潢川網(wǎng)頁制作以及潢川網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,潢川網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到潢川省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
答案取決于索引是創(chuà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
==沒有刪除索引
--刪除索引,增加主鍵并自動創(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
==自動創(chuàng)建了索引
--刪除主鍵約束
alter
table
hqy_test
drop
primary
key;
select
index_name
from
user_indexes
where
index_name='PK_HQY_ID';
無
==索引被刪除了
如果刪除主鍵時,希望同時刪掉索引,則應(yīng)該增加drop
index選項,從而不管索引是否是創(chuàng)建主鍵時自動創(chuàng)建的,即:alter
table
hqy_test
drop
primary
key
drop
index;
MYSQL索引信息存儲在INFORMATION_SCHEMA.STATISTICS表里,如果要批量刪除索引(主鍵除外)則可通過其構(gòu)建批量刪除sql。下面是我刪除pafss庫中所有以j_打頭的表的索引的sql。批量刪除主鍵可以通過第二個sql,但是自增列不能通過這種方式刪除。
1、SELECT?DISTINCT?(CONCAT('drop?index?',?INDEX_NAME,?'?on?',?TABLE_NAME,?';'))
FROM?INFORMATION_SCHEMA.STATISTICS?T
WHERE?T.TABLE_SCHEMA?=?'pafss'
AND?T.TABLE_NAME?LIKE?'j_%'
AND?T.INDEX_NAME??'PRIMARY';
2、SELECT??DISTINCT(concat('alert?table?',?TABLE_NAME?,'?drop?primary?key?;')),t.*
FROM?INFORMATION_SCHEMA.STATISTICS?T
WHERE?T.TABLE_SCHEMA?=?'pafss'
AND?T.TABLE_NAME?LIKE?'j_%'
AND?T.INDEX_NAME?=?'PRIMARY'
索引的創(chuàng)建可以在CREATE TABLE語句中進行,也可以單獨用CREATE INDEX或ALTER TABLE來給表增加索引。刪除索引可以利用ALTER TABLE或DROP INDEX語句來實現(xiàn)。
語法如下:
alter table table_name add index index_name (column_list) ;
alter table table_name add unique (column_list) ;
alter table table_name add primary key (column_list) ;
其中包括普通索引、UNIQUE索引和PRIMARY KEY索引3種創(chuàng)建索引的格式,table_name是要增加索引的表名,column_list指出對哪些列進行索引,多列時各列之間用逗號分隔。
索引名index_name可選,缺省時,MySQL將根據(jù)第一個索引列賦一個名稱。另外,ALTER TABLE允許在單個語句中更改多個表,因此可以同時創(chuàng)建多個索引。
1、如圖為MySQL刪除唯一索引的基本語法。
2、為了便于演示,我們需要根據(jù)圖示代碼創(chuàng)建一個唯一索引。
3、我們需要根據(jù)圖示代碼查看數(shù)據(jù)表當前的索引情況。
4、我們需要根據(jù)圖示代碼輸入mysql刪除唯一索引。
5、確認指令無誤,回車執(zhí)行即可。
網(wǎng)頁題目:mysql怎么刪除索引 mysql刪除索引會鎖表嗎
文章來源:http://bm7419.com/article38/dohgesp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導航、域名注冊、品牌網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、商城網(wǎng)站、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)