Михаиллл
27 березня 2020 р. 18:49

Как обновить или вставить в PostgreSQL

Добрый день.
У меня есть таблица в PostgreSQL с ключем id.
Как правильно вставить или заменить?
Если делаю так, то плдучаю ошибку :нет уникального ограничения или ограничения-исключения, соответствующего указанию ON CONFLICT

INSERT INTO public.drivers(
     name_driver, surname, middle_name )
    VALUES ('name', 'surname', 'midlename2')
    ON CONFLICT (middle_name) --WHERE middle_name ='name_driver3' 
    DO UPDATE SET
    name_driver = 'name_driver3', 
    surname = 'surname3', 
    middle_name = 'middle_name3'
2

Вам це подобається? Поділіться в соціальних мережах!

1
Михаиллл
  • 27 березня 2020 р. 20:00
  • Відповідь була позначена як рішення.

Оказывается нужно сделать столбец уникальным

ALTER TABLE public.drivers ADD UNIQUE (agregator1_id);

Потом так работает

INSERT INTO drivers(
     name_driver, surname, middle_name, agregator1_id )
    VALUES ('name', 'surname', 'midlename', '111')
    ON CONFLICT (agregator1_id) 
    DO UPDATE SET
    name_driver = 'name_driver1', 
    surname = 'surname1', 
    middle_name = 'middle_name1'

    Коментарі

    Only authorized users can post comments.
    Please, Log in or Sign up