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一样工作?