我在pgadmin4中有一个简单的postgresql表,有3列(a、b、c)和一个要导出到csv的索引列:我尝试使用pgadmin4的导入/导出功能,但导出的csv使用列“a”作为索引:如何按上述方式导出,以便保留索引列并将其与3列(a、b、c)分开,而不必在导出之前在pgadmin4中显式创建“index”列?
hpcdzsge1#
我相信你对你第一张图片左边的顺序计数的含义感到困惑。它不是索引。它只是一种视觉帮助,让你知道你看到的是哪一行,它不会被导出。也许 row_number() 是你想要的:数据样本
row_number()
CREATE TEMPORARY TABLE mynewc (a int, b int, c int); INSERT INTO mynewc VALUES (1,4,7),(2,5,8),(3,6,9);
导出使用 COPY ```COPY (SELECT ROW_NUMBER() OVER () AS index,* FROM mynewc) TO STDOUT CSV HEADER;
COPY
index,a,b,c1,1,4,72,2,5,83,3,6,9
如果您想知道如何从中获取文件,请更改 `STDOUT` 在一条小路旁。 `'/home/jason/mynewc.csv'` . 请记住,操作系统用户 `postgres` 需要对给定路径的写访问权限。
1条答案
按热度按时间hpcdzsge1#
我相信你对你第一张图片左边的顺序计数的含义感到困惑。它不是索引。它只是一种视觉帮助,让你知道你看到的是哪一行,它不会被导出。也许
row_number()
是你想要的:数据样本
导出使用
COPY
```COPY (
SELECT ROW_NUMBER() OVER () AS index,* FROM mynewc
) TO STDOUT CSV HEADER;
index,a,b,c
1,1,4,7
2,2,5,8
3,3,6,9