Существует Pgloader , который использует вышеупомянутую команду COPY
и может загружать данные из csv (и MySQL, SQLite и dBase). Он также использует отдельные потоки для чтения и копирования данных, поэтому он довольно быстрый (что интересно, он был написан с Python на Common Lisp и получил увеличение скорости в 20–30 раз, см. сообщение в блоге ).
Для загрузки файла CSV необходимо написать небольшой файл конфигурации, например
LOAD CSV
FROM 'path/to/file.csv' (x, y, a, b, c, d)
INTO postgresql:///pgloader?csv (a, b, d, c)
…