gpt4 book ai didi

go - 如何为 pq 驱动程序准备一个带有动态表名的 INSERT 语句

转载 作者:IT王子 更新时间:2023-10-29 02:10:02 24 4
gpt4 key购买 nike

如何为 pq postgres 驱动程序的准备好的 INSERT 语句使用动态表名?目前我有一个包含 id SERIALvalues TEXT 列的测试表,并且此语句失败:

stmt, err := db.Prepare("INSERT INTO $1(values) VALUES($2);")
if err != nil {
log.Fatal(err)
}

这是失败的:

pq: syntax error at or near "$1"

如果我只能对值使用占位符而不是表名,是否有办法在此处使用 Sprintf?表名包含来自用户输入的 string,虽然我可以对其进行清理,但与让 Postgres 在准备好的语句上返回错误相比,它会稍微减慢插入速度。

最佳答案

要替换表名变量,go sql 包还没有提供标准接口(interface) (in progress)。

您可以使用数据库驱动程序特定的报价功能,例如:QuoteIdentifier .

另见 postgres parameter quoting示例。

关于go - 如何为 pq 驱动程序准备一个带有动态表名的 INSERT 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49559645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com