0

我正在使用pgx库在 Go 中填充 Postgres 数据库。

遵循例如这里的教程和这个问题,我像这样构建我的查询:

// this works
tblinsert = `INSERT into tablename (id, body) VALUES ($1, $2) RETURNING id`
var id string
err := Connector.QueryRow(context.Background(), tblinsert, "value1", "value2").Scan(&id)
  • 问题:我也想将表名作为变量提供给查询,例如将tblinsert更改为INSERT into $1 (id, body) VALUES ($2, $3)

  • 问题:上面的代码出错并在我运行时返回“$1”或附近的语法错误(SQLSTATE 42601)”:

      //this errors out
      err := Connector.QueryRow(context.Background(), tblinsert, "tablename", "value1", "value2").Scan(&id)`.
    

我不完全理解为什么错误消息甚至引用了$占位符 - 我希望查询在这里进行字符串替换,就像 VALUES 一样。

我在这里这里的纯 SQL 中发现了类似的问题,所以不确定这是否可能。.

任何关于我哪里出错的指针,或者我可以在哪里了解更多关于$x语法的指针(我得到了上面的工作Sprintf,但这似乎不鼓励)非常感谢 - 我对 SQL 和 Go 都很陌生。

4

0 回答 0