sql >> Databasteknik >  >> RDS >> PostgreSQL

COPY kommando:kopiera endast specifika kolumner från csv

Antingen förbehandla CSV-filen eller (vad jag förmodligen skulle göra) importera till en tillfällig kopia av måltabellen och INSERT endast valda kolumner i ett andra steg:

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

Ett tillfälligt bord släpps automatiskt i slutet av sessionen. Om bearbetningen tar längre tid, använd en vanlig tabell.



  1. Hur man skapar relation många till många i SQLAlchemy (python, kolv) för modell Användare till sig själv

  2. Kan inte ansluta till '/var/run/mysqld/mysqld.sock'

  3. Hur hittar man specifik rad i MySQL-frågeresultat?

  4. Implementera anslutningspooling i JDBC med apache dbcp