日期:2014-05-16  浏览次数:20778 次

mysql修改表为字段添加auto_increment
比如我创建这样一个表

CREATE TABLE people ( peopleid SMALLINT NOT NULL, name CHAR(50) NOT NULL );

我要为peopleid添加一个auto_increment 让他自动整长,开始mysql总是报1075错误;于是查了一下关于mysql 1075的错误,

错误:1075 SQLSTATE: 42000 (ER_WRONG_AUTO_KEY)

消息:不正确的表定义,只能有1个auto列,而且必须将其定义为 键。

这是才明白 原来需要先添加一个主键

alter table people add primary key (peopleid);

alter table people change peopleid peopleid smallint auto_increment;


这样就成功了

那么,如果我们不添加主键呢?? 是不是就不可以了,当然不是

如果没有主键的话,我们这样也可以

alter table people change peopleid peopleid smallint auto_increment unique;


这样也是可以的,这里应该有一个注意,我刚开始的时候每次都没有修改都没有表明字段类型,总是报错,切忌要声明字段的类型.