文章来源: http://hi.baidu.com/luzheng22/blog/item/67d5ab7fc7825b0f28388add.html
比如我创建这样一个表
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;
这样也是可以的,这里应该有一个注意,我刚开始的时候每次都没有修改都没有表明字段类型,总是报错,切忌要声明字段的类型.