@Stergy

Как в запросе на PostgreSQL добавлять только уникальные значения?

Пишу на руби, есть функция которая с помощью Postgres запроса добавляет данные в таблицу, как можно исправить запрос что б данные добавлялись, если поле name c такими данными еще не существует. Если же в таблице уже есть строка с таким же полем name то ничего не добавлять.
Вот сам запрос:
INSERT INTO plans (name, holl_id, status, start_date, end_date,
       review_start_date, review_end_date, approval_date, expiration_date, created_at, updated_at)
       VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11) RETURNING id;
  • Вопрос задан
  • 702 просмотра
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
on conflict do nothing
https://www.postgresql.org/docs/current/sql-insert.html
Ну и уникальный индекс по полю, конечно.

Если вы на 9.4 в котором on conflict нет - обновляйтесь. 9.4 EOL через полгода.
Ответ написан
@MisFis123
i know who i am
Вам необходимо добавить Unique Constraint на поле name

https://www.postgresql.org/docs/9.4/ddl-constraint... раздел 5.3.3
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы