Таблица в Mysql с уникальными полями

У меня есть таблица в Mysql со следующими полями:

CREATE TABLE table_1(
camp_1 boolean,
tree varchar(50),
name varchar(50),
serv varchar(50),
number varchar(50),
PRIMARY KEY (camp_1, tree, name)
);

тогда у меня может быть что-то подобное:

select* from table_1

aa, bb, cc, null, 123
dd, ee, ff, null, 512

Проблема в том, что мне нужно, чтобы когда serv был нулевым, тогда мой первичный ключ был бы похож (или мне нужны три уникальных значения): camp_1, tree, name

И если serv не null, мне нужно вставить что-то вроде:

select* from table_1

aa, bb, cc, ddd, 123
aa, bb, cc, ert, 123
dd, ee, ff, null, 512

Таким образом, если serv не равен null, я могу иметь camp_1, tree, name два или более раз (aa, bb, cc появляются 2 раза) с разными значениями, но если serv не равен null, я не могу иметь camp_1, tree, name (дд, е, фф только 1 раз) с более чем 1 значением.

Я пытаюсь с индексом, но он не найден, потому что я не могу вставить ноль в мой первичный ключ.

Что-то может мне помочь?

0 ответов

Другие вопросы по тегам