How do you hide the column names and row count in the output from psql?
I’m running a SQL query via psql with:
psql --user=myuser -d mydb --output=result.txt -c "SELECT * FROM mytable;"
and I’m expecting output like:
1,abc
2,def
3,xyz
but instead I get:
id,text
-------
1,abc
2,def
3,xyz
(3 rows)
Of course, it’s not impossible to filter the top two rows and bottom row out after the fact, but it there a way to do it with only psql? Reading over its manpage, I see options for controlling the field delimiter, but nothing for hiding extraneous output.
You can use the
-tor--tuples-onlyoption:Edited (more than a year later) to add:
You also might want to check out the
COPYcommand. I no longer have any PostgreSQL instances handy to test with, but I think you can write something along these lines:(except that
result.txtwill need to be an absolute path). TheCOPYcommand also supports a more-intelligent CSV format; see its documentation.