sql >> Databáze >  >> RDS >> PostgreSQL

Příkaz COPY:zkopírujte pouze určité sloupce z csv

Buď předzpracujte soubor CSV, nebo (co bych asi udělal já) importujte do dočasné kopie cílové tabulky a INSERT pouze vybrané sloupce ve druhém kroku:

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

Dočasná tabulka je na konci relace automaticky zrušena. Pokud zpracování trvá déle, použijte běžnou tabulku.



  1. Vysvětlete MySQL vysvětlete matematiku prováděcího plánu, rozdíl mezi dvěma plány

  2. MySQL:Vyberte názvy sloupců obsahující řetězec

  3. jak mohu provést příkaz CMD v konzolové aplikaci c #?

  4. Proč potřebuji OR NULL v MySQL při počítání řádků s podmínkou