auto_increment usage in composite key

≯℡__Kan透↙ 提交于 2019-11-28 05:38:26

问题


I am having a table with the composite key

emp_tbl(
companyId int not null,
empId int not null auto_increment,
name varchar2,
....
...
primary key(companyId,empId)
);

In mysql whats happening is while i starts inserting the data

Emp_tbl

companyId    empId
1             1
1             2
1             3
2             1
2             2

Note that when the companyId changes the auto_increament value is resetted to 1 again. I want to disable that. I mean i don't want to reset the auto_increament. I am expecting the result like this.

companyId    empId
1             1
1             2
1             3
2             4
2             5

Is it possible to do it? Thanks


回答1:


This is what happens with a composite primary key that incorporates a auto_increment. Recreate the primary key so that it's purely your auto_increment field (empId) then create a unique index on companyId and empId

EDIT

Note that this only applies to MyISAM and BDB tables. If you used InnoDB for your tables, then it would also work as you wanted




回答2:


If you do not want empId to reset then just reverse the order of primary definition

primary key(companyId,empId)

note that composite key order matters.



来源:https://stackoverflow.com/questions/3804845/auto-increment-usage-in-composite-key

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!