PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Команда COPY:копирайте само определени колони от csv

Или обработете предварително CSV файла, или (което вероятно бих направил) импортирайте във временно копие на целевата таблица и INSERT само избрани колони във втора стъпка:

CREATE TEMP TABLE tmp AS SELECT * FROM target_table LIMIT 0;
ALTER TABLE tmp ADD COLUMN etra_column1 text
             ,  ADD COLUMN etra_column2 text;  -- add excess columns
COPY tmp FROM '/path/tp/file.csv';

INSERT INTO target_table (col1, col2, col3)
SELECT col1, col2, col3 FROM tmp  -- only reelvant columns
WHERE  ...  -- optional, to also filter rows

Временна маса се премахва автоматично в края на сесията. Ако обработката отнема повече време, използвайте обикновена таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:имена на ограничения по подразбиране

  2. PostgreSQL unnest() с номер на елемент

  3. Как да дублираме схеми в PostgreSQL

  4. Принудително да се инсталира Postgres с кодиране UTF8, а не LATIN1?

  5. Как да настроите отдалечена връзка с PostgreSQL