Логика SQL для уникальности нескольких столбцов - PullRequest
0 голосов
/ 28 августа 2018

С учетом

CREATE TABLE table (a TEXT, b TEXT, c TEXT UNIQUE (a, b) );

означает ли это ограничение a OR b должно быть уникальным или a AND b?

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

A and B. Допустимы следующие комбинации:

A   B
--- ---
abc def
abc ghi -- 'abc' again, but with different B column
cde ghi -- 'ghi' again, but with different A column

Но вы не можете добавить снова:

abc def
0 голосов
/ 28 августа 2018

Это определение вашей таблицы:

CREATE TABLE table (a TEXT, b TEXT, c TEXT UNIQUE (a, b) );

Ваше определение таблицы имеет составной уникальный ключ UNIQUE (a, b), что означает, что a and b не должно повторяться, или вы также можете сказать уникальная пара из a and b. Однако NULL можно игнорировать.

Ниже примерные данные иллюстрируют это:

 a    b   c (doesnt matter)
 -----------
'a'  'b' --- valid
'a'  'b' --- will throw error
'b'  'a' --- valid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...