如果你想从文件加载数据,我读了这个解决方案How to import CSV file data into a PostgreSQL table?似乎没问题。
我从API端点下载CSV数据,并希望尽可能避免保存到文件中。
我有一个运行此查询的NodeJS应用程序。
所以,我可以以某种方式传递文件路径,但是,例如,包含查询内容的字符串?
这样的事情:
COPY zip_codes FROM 'john,doe,1982-02-01' WITH (FORMAT csv);
答案 0 :(得分:1)
from stdin
我想:
f=# create table aa(a text, b text, c date);
CREATE TABLE
f=# copy aa from stdin delimiter ',';
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> john,doe,1982-02-01
>> \.
f=# select * from aa;
a | b | c
------+-----+------------
john | doe | 1982-02-01
(1 row)
<强>更新强>
当您显示node.js时,您可能正在寻找https://github.com/brianc/node-pg-copy-streams
这是一些例子:
JS:
client.connect()
var copyFrom = require('pg-copy-streams').from;
var stream = client.query(copyFrom("COPY aa FROM STDIN DELIMITER ','"));
stream.write("john,doe,2017-02-01\n");
stream.end();
var queryresult = client.query('select * from aa', function(err,res) {
console.log(err,res.rows);
client.end();
});
输出:
C:\Users\Vao\vatest>node t.js
null [ anonymous { a: 'john', b: 'doe', c: 2017-02-01T00:00:00.000Z } ]
SQL:
f=# select * from aa;
a | b | c
------+-----+------------
john | doe | 2017-02-01
(1 row)