mysql多个主键,如何删除主键
最近在添加一个表的时候,不小心将表字段设为了两个主键,表的创建语句如下:
DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`openid` varchar(50) DEFAULT '' COMMENT 'openid',
`status` tinyint(1) DEFAULT '0' COMMENT '状态:0为未审核,-1为审核不通过,1为审核通过',
`isdeleted` tinyint(1) DEFAULT '0' COMMENT '1为删除',
`createtime` int(11) DEFAULT '0' COMMENT '建立时间',
`edittime` int(11) DEFAULT '0' COMMENT '修改时间',
PRIMARY KEY (`id`,`status`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
在用thinkphp插入数据库时返回的结果总是1,而非最新插入的表记录编号,后来查了创建语句才发现是多个主键导致的。
现在需要删除status这个的主键。步骤如下:
1.删除主键的话,需要先删除自增:alter table test modify id int(11);//这里直接先修改字段类型,这样会自动去掉自增的
2.删除自增后,删除所有主键:alter table test drop primary key;
3.添加需要增加的主键内容,并恢复id原来的自增,这里直接修改表字段的内容即可:
alter table test change id `id` int(11) NOT NULL AUTO_INCREMENT primary key COMMENT '主键';
希望能帮助到您。