Михаиллл
27 марта 2020 г. 18:49

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

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

  1. INSERT INTO public.drivers(
  2. name_driver, surname, middle_name )
  3. VALUES ('name', 'surname', 'midlename2')
  4. ON CONFLICT (middle_name) --WHERE middle_name ='name_driver3'
  5. DO UPDATE SET
  6. name_driver = 'name_driver3',
  7. surname = 'surname3',
  8. middle_name = 'middle_name3'
2

Вам это нравится? Поделитесь в социальных сетях!

1
Михаиллл
  • 27 марта 2020 г. 20:00
  • Ответ был помечен как решение.

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

  1. ALTER TABLE public.drivers ADD UNIQUE (agregator1_id);

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

  1. INSERT INTO drivers(
  2. name_driver, surname, middle_name, agregator1_id )
  3. VALUES ('name', 'surname', 'midlename', '111')
  4. ON CONFLICT (agregator1_id)
  5. DO UPDATE SET
  6. name_driver = 'name_driver1',
  7. surname = 'surname1',
  8. middle_name = 'middle_name1'

    Комментарии

    Только авторизованные пользователи могут публиковать комментарии.
    Пожалуйста, авторизуйтесь или зарегистрируйтесь