Mysql 复合密钥中的自动增量用法

Mysql 复合密钥中的自动增量用法,mysql,auto-increment,Mysql,Auto Increment,我有一张带复合键的桌子 emp_tbl( companyId int not null, empId int not null auto_increment, name varchar2, .... ... primary key(companyId,empId) ); 在mysql中,发生的是当我开始插入数据时 Emp_tbl companyId empId 1 1 1 2 1 3 2 1

我有一张带复合键的桌子

emp_tbl(
companyId int not null,
empId int not null auto_increment,
name varchar2,
....
...
primary key(companyId,empId)
);
在mysql中,发生的是当我开始插入数据时

Emp_tbl

companyId    empId
1             1
1             2
1             3
2             1
2             2
请注意,当companyId更改时,自动增量值将再次重置为1。我想禁用它。我的意思是我不想重置自动递增。我期待着这样的结果

companyId    empId
1             1
1             2
1             3
2             4
2             5
有可能吗?
谢谢

这就是包含自动增量的复合主键的情况。重新创建主键,使其完全成为您的自动增量字段(empId),然后在companyId和empId上创建唯一索引

编辑


请注意,这仅适用于MyISAM和BDB表。如果您在表中使用InnoDB,那么它也可以按您所希望的那样工作

如果您不想重置empId,那么只需颠倒主定义的顺序即可

primary key(companyId,empId)

请注意,组合键顺序很重要。

有没有办法让innodb像MyISAM和BDB一样工作?