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

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

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

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

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


1
«Ссылка на столбец неоднозначна» при вставке элемента в таблицу
Я использую PostgreSQL в качестве базы данных. И мне нужно создать запись в базе данных, и если она уже существует, просто обновить ее поля, но одно из полей должно быть обновлено, только если оно не установлено. Я использовал информацию из этого вопроса: /programming/13305878/dont-update-column-if-update-value-is-null , это очень связано с тем, что …

1
UPSERT - есть ли лучшая альтернатива MERGE или @@ rowcount? [закрыто]
Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный центр . Закрыто 7 лет назад . Мне было интересно, …

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

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

3
Нужна помощь в устранении неполадок Sql Server 2005 Сценарий взаимоблокировки
Я сталкиваюсь со сценарием взаимоблокировки, где единственными участниками тупика являются одна таблица и одна хранимая процедура, которая удаляется из этой таблицы. Я сделал этот вывод, основываясь на моем анализе журнала ошибок SQL во время нескольких из этих тупиков, используя приведенную ниже статью MSDN в качестве руководства для расшифровки трассировки в …

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

1
Почему CTE открыт для потерянных обновлений?
Я не понимаю, что имел в виду Крейг Рингер, когда он комментировал: Это решение может потерять обновления, если транзакция вставки откатывается; нет никакой проверки, чтобы убедиться, что ОБНОВЛЕНИЕ затронуло любые строки. на https://stackoverflow.com/a/8702291/14731 . Пожалуйста, предоставьте пример последовательности событий (например, поток 1 выполняет X, поток 2 выполняет Y), который демонстрирует, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.