У меня есть эта таблица:
CREATE TABLE `executed_tests` (
`id` INTEGER AUTO_INCREMENT NOT NULL,
`user_id` INTEGER NOT NULL,
`test_id` INTEGER NOT NULL,
`start_date` DATE NOT NULL,
`completed_date` DATE,
PRIMARY KEY (`id`)
);
Я хочу установить уникальное ограничение для полей user_id
и test_id
, но только когда conclusion_date
равно нулю.Если conclusion_date
не равно нулю, ограничение не применяется.
Таким образом, будет существовать только одно незавершенное выполнение для каждого пользователя и теста.
Примерно так:
UNIQUE(`user_id`, `test_id`) WHEN (`completed_date` IS NULL)
Как я могу сделать это на MySQL 5.6?