Определение составного ключа с автоинкрементом в 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)
);
Конечно, с моим запросом должно быть что-то не так, из-за чего выдается ошибка:
ОШИБКА 1075: Неверное определение таблицы; может быть только один автоматический столбец, и он должен быть определен как ключ
Чего я пытаюсь достичь:
У меня есть таблица приложений (с app_id в качестве первичного ключа), у каждого приложения есть набор проблем, которые необходимо решить, и у каждого приложения есть несколько тестов (поэтому, столбец test_id) столбец sr_no должен увеличиваться для уникальных app_id и test_id.
т.е. данные в таблице должны выглядеть так:
Ядром базы данных является InnoDB. Я хочу достичь этого с максимально возможной простотой (т.е. избегать триггеров / процедур, если это возможно - что было предложено для аналогичных случаев в других Вопросах).