在MySQL中删除主键需要两步.
创新互联公司主营松溪网站建设的网络公司,主营网站建设方案,重庆App定制开发,松溪h5微信平台小程序开发搭建,松溪网站营销推广欢迎松溪等地区企业咨询
1、如果有auto_increment,先删除之;
alter table products change pid pid int;
2、删除主键约束 primary key.
alter table products drop primary key;
主键是一个特殊的索引,使用删除索引的语句可以删除,例如:
Alter table tbn drop primary key
sql中删除主键约束方法:
在服务器资源管理器中,选择包含该主键的表,再从“数据”菜单中单击“打开表定义”。该表在“表设计器”中打开。
在表网格中右击包含该主键的行,然后选择“移除主键”以将该设置从启用切换到禁用。
说明:若要撤消此操作,请关闭该表而不保存更改。 删除主键的操作无法在不丢失对该表作出的其他所有更改的情况下撤消。当保存表或关系图时,将从数据库中删除约束。
删除主键时是否会删除索引?
答案取决于索引是创建主键时自动创建的,还是创建主键前手工创建的。
测试如下:--建表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;
百度了一下,如果是自增列要两句:
ALTER TABLE tabname MODIFY col INT NOT NULL;
ALTER TABLE tabname DROP PRIMARY KEY;
你再这样试下ALTER TABLE 表名 drop CONSTRAINT PK_表名
最后的得用约束名称 默认的都这样 还不对的话 你查看下你的主键约束
sp_helpconstraint 表名
查的第2个表就是约束表