The psql help for copy (version=7.3.2 and several others) appears
incorrect (or perhaps the command parser is at fault - in any case
the help doesn't match reality):
steve=# \h copy
Command: COPY
Description: copy data between files and tables
Syntax:
COPY table [ ( column [, ...] ) ] FROM { 'filename' | stdin } [ [ WITH ] [ BINARY ] [ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ] [ NULL [ AS ] 'null string' ] ]
...
I interpret this as meaning that you can optionally specify a
delimiter, null etc. and if you do then you can optionally include
the "with" and the "as" for readability. While I can omit the "as" I
cannot omit the "with":
Works with both:
steve=# \copy foo from 'footest' with delimiter as ','
\.
Works with "with" only:
steve=# \copy foo from 'footest' with delimiter ','
\.
Does not work without "with"
steve=# \copy foo from 'footest' delimiter ','
\copy: parse error at 'delimiter'
steve=# \copy foo from 'footest' delimiter as ','
\copy: parse error at 'delimiter'
As such it seems that the help should be:
COPY table [ ( column [, ...] ) ] FROM { 'filename' | stdin } [ WITH [ BINARY ] [ OIDS ] [
DELIMITER[ AS ] 'delimiter' ] [ NULL [ AS ] 'null string' ] ]
...
Cheers,
Steve