Want to import data from TXT file to PostgreSQL via Command Line Interface (CLI) on Linux (Ubuntu/RedHat/CentOS…)?
Using pg-cmd, a Command Line Interface (CLI) client for PostgreSQL, you can import data from TXT file to PostgreSQL easily and fast. Direct Interaction or Scripting and Automation.
- No need to install PostgreSQL client library.
- Convenient to deploy to cloud. No need to run installation file, just uncompress and run, immediately.
- Commands are entered into a terminal or command prompt, accessed from local or remote (like SSH).
- Support Windows, Linux, and MacOS.
Download pg-cmd Linux version
pg-cmd.linux-386.zip
pg-cmd.linux-amd64.zip
pg-cmd.linux-arm64.zip
Import data from TXT file to PostgreSQL via command line on Linux (Ubuntu/RedHat/CentOS…)
1. In interactive mode:
pg-cmd> load loadtype=replace
> table=media_messages
> datafile=/data/media_messages.txt
> delimiter=,
> quote="
> header=y;
2. In batch mode:
pg-cmd dsn="pan:withdata@192.168.0.102/test" task=load loadtype=replace table=media_messages datafile=/data/media_messages.txt delimiter=, quote=" header=y quit=y
“loadtype=replace” will delete all data in table before inserting.
See parameters detail.
More about pg-cmd – Command Line Interface (CLI) tool for PostgreSQL
Download pg-cmd Linux version
pg-cmd.linux-386.zip
pg-cmd.linux-amd64.zip
pg-cmd.linux-arm64.zip
TXT → PostgreSQL reference
Type mapping
| Value kind | in TXT | in PostgreSQL |
|---|---|---|
| Int | 1234, or right-aligned in a fixed-width column | integer |
| Bigint | 9007199254740993 | bigint |
| Decimal | 1234.56 | numeric(p,s) |
| Float | 1.234e+10 | double precision |
| Text | written as-is; padding depends on the chosen layout | varchar(n) |
| Long text | written as-is | text |
| Date | whatever the writer chose | date |
| Datetime | whatever the writer chose | timestamp |
| Binary | not representable | bytea |
| Boolean | Y / N, or 1 / 0, or TRUE / FALSE | boolean |
| JSON | written as-is | jsonb |
Dialect differences
TXT is a file format and PostgreSQL is a database server, so the target has to be told the types the file never carried - the rows below are where the two sides diverge.
| Property | in TXT | in PostgreSQL |
|---|---|---|
| port | — | 5432 |
| identifiers | None by convention | "double quotes" |
| row limit | — | LIMIT n |
| dates | Whatever the writer produced; no convention is guaranteed | timestamp, timestamptz, date, time |
| long text | — | TEXT |
| binary | Not supported | BYTEA |
| separator | Whatever was chosen - often fixed column widths | — |
| encoding | No declaration - UTF-8 works only with a BOM | — |
| typing | None - every field is text | — |
| shape | Free form; a parser has to be told the layout | Tables of rows and columns |
| ceiling | No formal limit | — |
Command line
| Side | Command |
|---|---|
| PostgreSQL | pg_dump or COPY ... TO |
| PostgreSQL (load) | COPY ... FROM |
Convert your data online, free
Free in-browser converters for CSV, Excel, JSON, XML and SQL: Withdata Online Data Conversion. Large files, batch conversion or scheduling? See the offline desktop apps, or browse all data conversion tools.