我有一个AWS Lamda函数,它获取一些计算数据,然后应该将其插入Cockratch中的表中。我可以创建表,但不能向其中添加行。
这是我代码的pg部分:(我最终会使用池,但连接是为了测试,应该可以做到(:
同样值得注意的是,我的查询看起来与nodepostgres的示例以及蟑螂的文档中的查询完全相同。
const dbClient = new Client("omitted but it works")
try {
await dbClient.connect()
await dbClient.query(`CREATE TABLE IF NOT EXISTS outputs(user_id STRING NOT NULL, date_created TIMESTAMPTZ, date_modified TIMESTAMPTZ, content STRING NOT NULL, image_url STRING NOT NULL)`)
await dbClient.query(`INSERT INTO outputs(
user_id,
content,
image_url)
VALUES(
$1,
$2,
$3
)`,
[
userID,
response.results.choices[0].text,
response.imageResponse[0].url,
])
} catch (e) {
} finally {
dbClient.end()
}
}
显然,我不明白pg/node postgres是如何处理动态值的。我必须安装并使用pg格式,以便安全地使用动态值。这里有一个例子:
const date = new Date()
await dbClient.query(`CREATE TABLE IF NOT EXISTS outputs(_id STRING PRIMARY KEY, user_id STRING NOT NULL, date_created TIMESTAMPTZ, date_modified TIMESTAMPTZ, content STRING NOT NULL, image_url STRING NOT NULL)`)
const query = format(`INSERT INTO tablename (
_id,
user_id,
date_created,
content,
image_url)
VALUES(
%L,
%L,
%L,
%L,
%L
)`,
response.id,
userID,
date.toISOString(),
response.choices[0].text,
response.url