Перезаписать столбец в Postgres из столбца в CSV-файле - PullRequest
0 голосов
/ 24 мая 2019

У меня большая таблица, и я хочу обновить только один столбец. Значения для этого столбца присутствуют в файле CSV. Я хочу избежать одной вставки в столбец события, потому что это займет много времени. Я бы предпочел что-то вроде COPY, чтобы я мог напрямую выводить новые значения поверх старых. Но выгрузка определенной копирующей копии добавляет ее в конец таблицы, а не перезаписывает ее.

Есть предложения?

1 Ответ

0 голосов
/ 24 мая 2019

Предложение: Вставка выполняется быстрее, чем обновление в БД, поэтому можно выполнить следующие шаги:

  1. Загрузить CSV во временную таблицу. Не все столбцы требуются только первичный ключ истолбец, который необходимо обновить в основной таблице.
  2. Переименовать основную таблицу в main_temp
  3. пересоздать основную таблицу (сейчас нет записей)
  4. Соединить main_temp и временную таблицу на основе первичного ключаи вставьте в основной (выберите конкретный столбец из временной таблицы вместо основной)
  5. drop main_temp
...