欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 如何修改、添加、删除表主键

程序员文章站 2022-06-30 09:21:35
MySQL修改表结构操作命令总结 MySQL修改表结构操作命令总结 MySQL修改表结构操作命令总结 以下内容转自:http://www.jb51.net/article/58079.htm 表的结构如下: 复制代码代码如下: mysql> show create table person;| pe ......

在我们使用mysql的时候,有时会遇到须要更改或者删除mysql的主键,我们能够简单的使用alter table table_name drop primary key;来完成。以下我使用数据表table_test来作了样例。
1、首先创建一个数据表table_test:
create table table_test(
`id` varchar(100) not null,
`name` varchar(100) not null,
primary key (`name`)
)engine=myisam default charset=gb2312;
2、如果发现主键设置错了,应该是id是主键,但如今表里已经有好多数据了,不能删除表再重建了,仅仅能在这基础上改动表结构。
先删除主键
alter table table_test drop primary key;
然后再增加主键
alter table table_test add primary key(id);
注:在增加主键之前,必须先把反复的id删除掉。

 

以下内容转自:http://www.cnblogs.com/suiy-160428/p/5649911.html

mysql修改主键属性:

前言:在学习mysql的过程中,对于主键的属性以及操作理解较模糊,在输入多条修改主键属性的语句后经常报错,所以想整理一下这个过程中遇到的问题,作为自己的学习记录,可能都是基础知识,但也希望提高自己对数据库的理解,同时也能帮助到其他人。


  主键约束在数据表中可以定义一个主键值,唯一确定表中的每一条记录。每张表中只能有一个primary key,并且primary key不能为空。如果主键约束定义在不止一列,则一列的值可以重复,但是主键约束定义中的所有列组合必须唯一。

1. 添加主键约束:

alter table tbl_name add primary key (index_col_name,…);
#括号中为字段名,可以为一个或者多个

2. 在数据表已存在的情况下,且无主键,添加新的字段作为主键,并将该字段移到表格的第一列

alter table tbl_name add col_name col_definition (data type, null, default...) primary key first current_first_col_name;
# current_first_col_name表示当前数据表的第一列  

notes:关键字first表示位于某一列的前面,如果加入的字段需要位于某一列的后面,可以使用after

 3. 数据表已存在,且有主键,修改主键的定义

关键字modify

alter table tbl_name modify col_name col_definition [first|after col_name]
#在col_definition 声明要修改的属性,如要添加自动编号auto_increment 

notes:

1)  此时不需要重新声明主键属性primary key,如果添加了则会报错:主键重复;

2)  如果原有属性中存在auto_increment,修改时需要加上auto_increment,否则auto_increment属性被删除

关键字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#与modify的区别在于列表需要写两次列名,相当于原列名和新列名,所以change也可以用来修改列名