Михаиллл
Наурыз 27, 2020, 6: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, 8 Т.Қ.
  • Жауап шешім ретінде белгіленді.

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

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'

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз