Если вы установите столбцы как UNIQUE, произойдет сбой, поскольку столбец col1 не может быть равен двум разным строкам.
Но если вы установите столбцы как PRIMARY KEY, но не UNIQUE, база данных предполагает, что комбинация всех первичных ключей должна быть значением 'UNIQUE', поэтому col1 + col2 + col3 + col4 + col5 не может быть найдено ни на одном другой ряд.
Надеюсь, это поможет.
EDIT
Вот пример:
create table example (
col1 bigint not null unique,
col2 bigint not null,
primary key (col1,col2));
insert into example values(1,1); ==> Success
insert into example values(1,2); ==> Failure - col1 is unique and '1' was used
insert into example values(2,1); ==> Success - '2' was never used on col1
insert into example values(2,7); ==> Failure - '2' was already used on col1
Но если вы используете вместо:
create table example (
col1 bigint not null,
col2 bigint not null,
primary key (col1,col2));
insert into example values(1,1); ==> Success
insert into example values(1,2); ==> Success
insert into example values(2,1); ==> Success
insert into example values(1,2); ==> Failure - '1','2' combination was used