AdvancedAdvanced PostgreSQL

PostgreSQL: COPY between databases via pipe

The query

SQL
-- Export from source DB
COPY (SELECT emp_id, first_name, last_name, email, salary
       FROM employees WHERE status = 'active')
TO '/tmp/employees_export.csv'
WITH (FORMAT csv, HEADER true, DELIMITER ',');

-- Import into target DB (different server)
COPY employees_staging(emp_id, first_name, last_name, email, salary)
FROM '/tmp/employees_export.csv'
WITH (FORMAT csv, HEADER true);

-- Verify import count
SELECT COUNT(*) FROM employees_staging;
Tested against PostgreSQL 16

Note

COPY (backslash) is psql client-side command. COPY (no backslash) is server-side. Use COPY for remote servers.

Tables referenced