【发布时间】:2013-08-09 19:34:17
【问题描述】:
场景:
我有一个引用两个外键的表,对于这些外键的每个唯一组合,都有自己的 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)
);
当然,我的查询肯定有问题,因此抛出的错误是:
ERROR 1075:表定义不正确;只能有一辆汽车 列,它必须被定义为一个键
我想要达到的目标:
我有一个应用程序表(以 app_id 作为其主键),每个应用程序都有一组要解决的问题,每个应用程序都有多个测试(所以 test_id col) sr_no col 应该为唯一的 app_id 和 test_id 递增。
即表中的数据应如下所示:
数据库引擎是 InnoDB。 我想以尽可能简单的方式实现这一点(即尽可能避免触发器/程序 - 这是针对其他问题的类似情况建议的)。
【问题讨论】:
标签: mysql innodb auto-increment composite-key