php - INNODB 引擎中的 MySql AUTO_INCRMENT 作为第二列

标签 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。

最佳答案

您可以在 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;

关于php - INNODB 引擎中的 MySql AUTO_INCRMENT 作为第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213598/

相关文章:

php - 读取文件的元数据

不应该工作但返回所有表内容的 MySQL where 子句

php - MySQL 查询返回错误值

mysql - 如何合并具有相同列和不同列的 2 个表的行

php - 如何使用Laravel在Controller中捕获500错误

php - 如何使用PHP pthread删除对可堆叠对象的所有引用?

javascript - 用 PHPWord setValue 函数替换 html 实体

PHP警告: mysqli_fetch_object() expects parameter 1 to be mysqli_result,

mysql - 如何在 SELECT 子句中命名列别名后立即使用它?

mysql - 如何在 MySQL 上进行 SQL 区分大小写的字符串比较?