@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;
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Instamart Москва
До 220 000 руб.
Frogogo Москва
от 100 000 до 250 000 руб.
от 100 000 до 200 000 руб.
19 окт. 2019, в 23:37
1000 руб./в час
19 окт. 2019, в 23:08
500 руб./за проект
19 окт. 2019, в 22:44
12500 руб./за проект