PostgreSQL — Как проверить соответствие значений двух полей

#postgresql #validation

Вопрос:

У меня есть таблица, содержащая столбцы » Имя » и «дата». Я хочу заблокировать вставку повторяющейся комбинации. Например, если у меня есть запись с {имя: «джо», дата: «2021-05-24»}, мне нужно запретить вставку другой записи {имя: «джо», дата: «2021-05-24»}. Существует ли простой способ сделать это в PosgresSQL?

Изначально я думал о динамическом конкатенаторе, который создавал бы строку для столбца, который отвечал бы за эту проверку, но я полагаю, что есть что-то более элегантное.

Комментарии:

1. Так ты хочешь разрешить Джо встречаться с другими девушками? А другие люди на том же свидании?

2. @Bergi да. Я хочу этого

Ответ №1:

Вы ищете многоколоночный UNIQUE индекс (или первичный ключ, который использует то же самое внизу). Нет необходимости в объединении.