MySQL修改主键属性

前言:在学习MySQL的过程当中,对于主键的属性以及操做理解较模糊,在输入多条修改主键属性的语句后常常报错,因此想整理一下这个过程当中遇到的问题,做为本身的学习记录,可能都是基础知识,但也但愿提升本身对数据库的理解,同时也能帮助到其余人。数据库


  主键约束在数据表中能够定义一个主键值,惟一肯定表中的每一条记录。每张表中只能有一个primary key,而且primary key不能为空。若是主键约束定义在不止一列,则一列的值能够重复,可是主键约束定义中的全部列组合必须惟一。学习

1. 添加主键约束:spa

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

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

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表示位于某一列的前面,若是加入的字段须要位于某一列的后面,可使用afterblog

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

关键字modifyit

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

Notes:io

1)  此时不须要从新声明主键属性primary key,若是添加了则会报错:主键重复;table

2)  若是原有属性中存在auto_increment,修改时须要加上auto_increment,不然auto_increment属性被删除class

关键字change

alter table tbl_name change col_name col_name col_definition [first|after col_name]
#与modify的区别在于列表须要写两次列名,至关于原列名和新列名,因此change也能够用来修改列名
相关文章
相关标签/搜索