Ограничение Postgres, при котором col1 не может быть идентичным col2

#postgresql #constraints

#postgresql #ограничения

Вопрос:

например,

если col1 должен представлять игрока 1, а col2 должен представлять игрока 2,

если они должны играть друг с другом, игрок 2 не может быть тем же игроком, что и игрок 1.

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

Можно ли это сделать?

Ответ №1:

Из того, что вы описали, это похоже на простое ограничение проверки:

 alter table the_table
   constraint different_players
   check (player_1 <> player_2);
 

Если эти столбцы могут содержать нулевые значения, то, возможно:

 alter table the_table
   constraint different_players
   check (player_1 is distinct from player_2);