sql >> Database teknologi >  >> RDS >> PostgreSQL

COPY kommando:kopier kun specifikke kolonner fra csv

Enten forbehandle CSV-filen, eller (hvad jeg sandsynligvis ville gøre) import til en midlertidig kopi af måltabellen og INSERT kun valgte kolonner i et andet trin:

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

En midlertidig tabel droppes automatisk i slutningen af ​​sessionen. Hvis behandlingen tager længere tid, skal du bruge en almindelig tabel.



  1. Hvis du laver et videodelingssted, skal du bruge en videoafspiller

  2. Hvad er en funktion med tabelværdi i SQL Server?

  3. PHP skriver 800 poster til fil(.txt) fra databasen

  4. PDO oprettelse af database og tabeller