INNODB Engine中的MySql AUTO_INCREMENT为第二列

时间:2013-11-26 09:53:12

标签: php mysql sql primary-key auto-increment

此刻我有一个非常讨厌的问题。我想要一个具有以下规范的表:

CREATE TABLE  `test` (
   `client` INT NOT NULL ,
   `id` INT NOT NULL AUTO_INCREMENT ,
   `test` INT NOT NULL ,
   PRIMARY KEY (  `client` ,  `id` ) ,
   INDEX (  `test` )
) ENGINE = INNODB;

你可以看到,我有一个包含2列的主键。现在我希望id auto_increment列只增加到第一列。例如:

## client/id ##
1/1 
1/2 
1/3
2/1
2/2
2/3

使用innodb真的不可能吗?由于交易功能,我需要innodb。

1 个答案:

答案 0 :(得分:0)

您可以在SELECT语句

中轻松派生它
set @sno:=0;
set @client:='';
select @sno:=case when @client=client then @sno+1 else 1 end as sno,
@client:=client as client_id from table order by client;