此刻我有一个非常讨厌的问题。我想要一个具有以下规范的表:
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。
答案 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;