重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
删除主键时是否会删除索引? 答案取决于索引是创建主键时自动创建的,还是创建主键前手工创建的。
创新互联建站主要业务有网站营销策划、做网站、成都网站建设、微信公众号开发、小程序制作、H5场景定制、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、成都营销网站建设资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。
测试如下:--建表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 ==没有删除索引
--删除索引,增加主键并自动创建索引
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 ==自动创建了索引
--删除主键约束
alter table hqy_test drop primary key;
select index_name from user_indexes where index_name='PK_HQY_ID';
无 ==索引被删除了
如果删除主键时,希望同时删掉索引,则应该增加drop index选项,从而不管索引是否是创建主键时自动创建的,即:alter table hqy_test drop primary key drop index;
mysql删除表的主键
表结构:
create
table
service_code(
`id`
varchar(100)
NOT
NULL,
`name`
varchar(100)
NOT
NULL,
PRIMARY
KEY
(`name`)
)ENGINE=MyISAM
DEFAULT
CHARSET=gb2312;
先删除主键
alter
table
service_code
drop
primary
key;
然后再添加主键
alter
table
service_code
add
primary
key(id);
注:在添加主键之前,必须先把重复的id删除掉
先删除自增长在删除主键
Alter table tb change id id int(10);//删除自增长
Alter table tb drop primary key;//删除主建