如何为pq postgres驱动程序准备好的INSERT
语句使用动态表名?目前我已经有一个包含id SERIAL
和values TEXT
列的测试表,而且此声明失败了:
stmt, err := db.Prepare("INSERT INTO $1(values) VALUES($2);")
if err != nil {
log.Fatal(err)
}
那是失败的:
pq:语法错误等于或接近" $ 1"
如果我只能使用占位符来表示值而不是表名,那么有没有办法在这里使用Sprintf
?表名包含来自用户输入的string
,虽然我可以对其进行清理,但与让Postgres在预准备语句中返回错误相比,它会减慢插入速度。