用SQL语句给一个表的增加自增主键或删除主键

刚开始时碰到这个需求时,在网上搜索了一下,发现都说不行,得先删除那主键列再重新增加或者先创建一个临时表再把数据导过来,其实在MYSQL中是可以直接修改的。

修改ID字段为自增主键:

alter table `test` change `id` `id` int (11) UNSIGNED NOT NULL AUTO_INCREMENT , add primary key (`id` );

修改ID字段为自增非主键:

alter table `test` change `id` `id` int (11) UNSIGNED NOT NULL AUTO_INCREMENT , drop primary key;

修改ID字段为普通字段:

alter table `test` change `id` `id` int (11) UNSIGNED NOT NULL ;


另外,MYSQL5.1设置数据表分区时,primary key主键必须包含分区关键字,但如果分区关键字恰好不是主键的话,则只能把分区关键字加入到主键。还可以把主键取消同时保留该字段的自增属性,但要有自增属性的字段必须要创建索引(不需要是UNIQUE)。

但我一直搞不明白,为什么主键必须前面的分区关键字,好像没有必须存在的理由,难道是MYSQL公司为了他们方便实现分区算法?


发布了179 篇原创文章 · 获赞 39 · 访问量 120万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览