Вопросы с тегом «upsert»

UPSERT: SQL-UPDATE строку или, если не найдено, INSERT новую строку.

40
Идиоматичный способ реализации UPSERT в PostgreSQL

Я читал о различных UPSERTреализациях в PostgreSQL, но все эти решения относительно старые или относительно экзотические (например, с использованием записываемого CTE ). И я просто не являюсь экспертом в psql, чтобы сразу выяснить, устарели ли эти решения, потому что они хорошо рекомендованы, или...

26
Как вставить или обновить с помощью одного запроса?

У меня есть тест таблицы с идентификатором столбцов, который первичный ключ и автоматически увеличивается и имя. Я хочу вставить новую запись, если и только если нет записей. Например, ввод id = 30122 и имя = Джон если есть записи с идентификатором 30122, я обновляю столбец имени до john, если нет...

18
Как получить идентификатор конфликтующей строки в upsert?

У меня есть таблица tagс 2 столбцами: id(UUID) и name(текст). Теперь я хочу вставить новый тег в таблицу, но если тег уже существует, я хочу просто получить idсуществующую запись. Я предположил, что я мог бы просто использовать ON CONFLICT DO NOTHINGв сочетании с RETURNING "id": INSERT INTO "tag"...

16
«Ссылка на столбец неоднозначна» при вставке элемента в таблицу

Я использую PostgreSQL в качестве базы данных. И мне нужно создать запись в базе данных, и если она уже существует, просто обновить ее поля, но одно из полей должно быть обновлено, только если оно не установлено. Я использовал информацию из этого вопроса:...

14
UPSERT - есть ли лучшая альтернатива MERGE или @@ rowcount? [закрыто]

Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный...

13
PostgreSQL UPSERT проблема со значениями NULL

У меня проблема с использованием новой функции UPSERT в Postgres 9.5 У меня есть таблица, которая используется для агрегирования данных из другой таблицы. Составной ключ состоит из 20 столбцов, 10 из которых могут быть обнуляемыми. Ниже я создал уменьшенную версию проблемы, в частности, со...

9
Нужна помощь в устранении неполадок Sql Server 2005 Сценарий взаимоблокировки

Я сталкиваюсь со сценарием взаимоблокировки, где единственными участниками тупика являются одна таблица и одна хранимая процедура, которая удаляется из этой таблицы. Я сделал этот вывод, основываясь на моем анализе журнала ошибок SQL во время нескольких из этих тупиков, используя приведенную ниже...

9
Как избежать использования запроса Merge при загрузке нескольких данных с использованием параметра xml?

Я пытаюсь обновить таблицу с массивом значений. Каждый элемент в массиве содержит информацию, которая соответствует строке в таблице в базе данных SQL Server. Если строка уже существует в таблице, мы обновляем эту строку информацией из данного массива. Иначе, мы вставляем новую строку в таблицу. Я...

9
PostgreSQL Upsert не работает на секционированной таблице

Есть стол, как это: CREATE TABLE aggregated_master ( "user" BIGINT, type TEXT, date TIMESTAMP, operations BIGINT, amount NUMERIC, PRIMARY KEY ( "user", type, date ) ); Эта таблица является мастером, от которого наследуется множество разделов. Разделы выполняются MONTH в поле DATE. Например: раздел...

8
Почему CTE открыт для потерянных обновлений?

Я не понимаю, что имел в виду Крейг Рингер, когда он комментировал: Это решение может потерять обновления, если транзакция вставки откатывается; нет никакой проверки, чтобы убедиться, что ОБНОВЛЕНИЕ затронуло любые строки. на https://stackoverflow.com/a/8702291/14731 . Пожалуйста, предоставьте...