小编Nir*_*eri的帖子

在MySQL中使用自动增量定义复合键

场景:

我有一个引用两个外键的表,并且对于这些外键的每个唯一组合,都有自己的auto_increment列.我需要实现一个复合键,它将使用这三个组合(一个外键和一个auto_increment列,另一个列具有非唯一值)帮助将行标识为唯一

表:

CREATE  TABLE `issue_log` (
`sr_no` INT NOT NULL AUTO_INCREMENT ,
  `app_id` INT NOT NULL ,
  `test_id` INT NOT NULL ,
  `issue_name` VARCHAR(255) NOT NULL ,
primary key (app_id, test_id,sr_no)
);
Run Code Online (Sandbox Code Playgroud)

当然,我的查询必定有问题,因为抛出的错误是:

错误1075:表定义不正确; 只能有一个自动列,必须将其定义为键

我想要实现的目标:

我有一个Application Table(以app_id作为主键),每个Application都有一组要解决的问题,每个Application都有多个测试(所以test_id col)sr_no col应该为唯一的app_id和test_id递增.

即表中的数据应如下所示:

在此输入图像描述

数据库引擎是InnoDB.我希望尽可能简单地实现这一点(即如果可能的话,避免使用触发器/程序 - 这是针对其他问题的类似情况而建议的).

mysql innodb composite-key auto-increment

22
推荐指数
3
解决办法
2万
查看次数

标签 统计

auto-increment ×1

composite-key ×1

innodb ×1

mysql ×1