postgresql 无法使用pg将行插入Cockroachdb表

9cbw7uwe  于 2022-12-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(117)

我有一个AWS Lamda函数,它获取一些计算数据,然后将其插入Cockroach中的表中。我可以 * 创建 * 表,但不能向其中添加行。
下面是我的代码的pg部分:(我最后将使用池,但连接是用于测试的,应该可以完成测试):
同样值得注意的是,我的查询看起来与node-postgres的示例以及cockrach的文档中的查询完全一样。

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()
                }
            }
roejwanj

roejwanj1#

显然我不明白pg/node-postgres是如何处理动态值的,我必须安装并使用pg-format才能安全地使用动态值,下面是一个例子:

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

相关问题