MySql如果用sql语句设置已有字段的自增长属性?

已创建好的表
CREATE TABLE `test` (
`GUID` varchar(36) NOT NULL,
`NAME` varchar(36) NOT NULL,
`ID` int(4) NOT NULL,
PRIMARY KEY (`GUID`,`ID`)
)
现在想把字段ID设置为自增长auto_increment,SQL语句该如何写?
主要要注意在表中,ID字段已和GUID成为复合主键。

第1个回答  2014-02-24
给分吧。自增的列,必须是主键
参考下边语句
alter table test change ID ID int not null auto_increment primary key;追问

ID已经是复合主键的一部分,执行的话会报错误已有主键

第2个回答  2014-02-24
改成:
CREATE TABLE `test` (
`GUID` varchar(36) NOT NULL,
`NAME` varchar(36) NOT NULL,
`ID` int(4) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`GUID`,`ID`)
)追问

表是已经创建好了的,现在要去修改字段的属性。

追答

正常应该这样,你试试,不过有可能会守到联合主键影响。
alter table test
change ID
ID int(4)
auto_increment;

看看你到底有没必要需要用联合主键,如果没有业务意义的话,这种是没必要的。反倒额外增加自己的烦恼。

追问

不能修改原有表结构,不过已经想到了解决的办法,非常感谢您。
把原有的主键删除,然后再change的后面重新添加复合主键。 谢谢。

第3个回答  2014-02-24
`ID` int(4) NOT NULL AUTO_INCREMENT,
加上AUTO_INCREMENT就是自增长的了
第4个回答  2014-02-24
alter table `test` change `ID` `ID` int (4) NOT NULL , add primary key(`ID` );

本回答被提问者采纳
相似回答