我正在尝试将CSV数据复制到表中。我也想打印计数。
我正在使用的命令是:
echo "begin; delete from a; \copy a from a.csv CSV HEADER; end;" | psql -hlocalhost -dpostgres -Upostgres
预期输出:
BEGIN
DELETE 2
COPY 2
COMMIT
实际输出:
BEGIN
DELETE 2
COMMIT
关于我在这里缺少什么的任何想法?
答案 0 :(得分:0)
避免引用和转义麻烦的最好方法是使用HERE-document
:
#!/bin/sh
psql -hlocalhost -d postgres -U postgres << OMG
begin;
SET search_path = tmp;
delete from a;
\copy a from 'a.csv' CSV HEADER;
end;
OMG