//在数据库表中 只有设置一个int类型的字段为主键,才可以设这个字段为标识列,标识列的作用就是一个可以自动增长的数字,如消息id,唯一并且不重复,是消息唯一标识
alter table user_score add primary key(id);
删除主键需要两步.
如果有auto_increment,先删除之; alter table user_score change id id int;删除主键约束 primary key. alter table user_score drop primary key;//取消自增
alter table user_score modify column id int;
//修改自增初始值
alter table user_score auto_increment = 2;
MySQL 每张表只能有1个自动增长字段,这个自动增长字段即可作为主键,也可以用作非主键使用,但是请注意将自动增长字段当做非主键使用时必须必须为设置为一种“键(key)”(没有插入成功,但是自增长序列,还是会用一次增长)。主键(primary key)是键(key)的一种,key还包括外键(foreign key)、唯一键(unique key)等1. 将自动增长字段设置为主键。
create table t1 (id int auto_increment Primary key,sid int);将自动增长字段设置为非主键,注意必须显式添加Unique键。 create table t2 (sid int primary key,id int auto_increment Unique);将自动增长字段设置为非主键如果未添加唯一索引将会报错**,如下面语句 create table t3 (sid int primary key,id int auto_increment)。假如我们现在有一张表
要改成: 用一条ALTER语句实现:
ALTER TABLE hooptie RENAME TO car_table, ADD COLUMN car_id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(car_id), ADD COLUMN VIN VARCHAR(16)AFTER car_id, CHANGE COLUMN mo model VARCHAR(20), MODIFY COLUMN color AFTER model, MODIFY COLUMN year SIXTH, CHANGE COLUMN howmuch price DECIMAL(7,2);CHANGE: 如果我们不只是修改单一列,而是用一条语句改变两个列,我们需要修改列的名称,同时更改他们的数据类型,这时就需要我们用到关键字CHANGE,可以在一条语句中放入多个CHANGE,在中间加上分隔的逗号即可。
比如原来的表两列,类型为VARCHAR(50),和VARCHAR(10),现在不止要更改列名,还要更改这两列的类型。
ALTER TABLE project_list CHANGE COLUMN descriptionofproj proj_desc VARCHAR(100), CHANGE COLUMN contractoronjob con_name VARCHAR(30);MODIFY: 使用它可以只修改列的类型而不会干涉它的名称,假设要把proj_desc列的字符长度修改为VARCHAR(120)以容纳更多的说明文字,只要这么做就可以。
ALTER TABLE project_list MODIFY COLUMN proj_desc VACHAR(120); #proj_desc是要修改的列名,VARCHAR(120)是新的数据类型