mysql自增长联合主键

在MySQL中,由于InnoDB存储引擎的要求,自增长(auto_increment)字段必须拥有独立索引,不能作为联合主键的一部分。当尝试创建包含type和id(自增)的联合主键时,会报错。解决方法是将id字段设置为独立的主键或唯一索引。
摘要由CSDN通过智能技术生成

        今天因为业务需求设计了一个数据库表,表里面包含type和id两个字段,我期望id是根据type来自增长的,也就是说对于不同的type,id都是从1开始自增长的,所以表示这样创建的(数据库用的mysql):

create table mytable(type int, id int auto_increment, ..., PRIMARY KEY  (`type`,`id`))ENGINE=InnoDB;
但是mysql提示错误,错误信息如下:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key

        网上查了下原因,应该是存储引擎的影响。我创建表时用的存储引擎是InnoDB,但是InnoDB似乎要求auto_increment类型的字段在数据库中必须拥有独立的索引,不能是联合索引,所以这样创建表也可以了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值