我正在尝试使用Golang sqlx库创建一个准备好的语句。我想让表名为bindVar
stmt, err := stmtTx.Preparex("SELECT * FROM $1 WHERE question_id=$2;")
然而,这给了我/$1/
周围的语法错误。我可以不为表名使用bind var吗?
答案 0 :(得分:1)
我可以不为表名使用bind var吗?
参数只能用作数据值,而不能用作标识符。 因此,例如,这是合理的:
INSERT INTO mytable VALUES ($1);
但这不起作用:
INSERT INTO $1 VALUES (42);
但如果需要,可以使用fmt.Sprintf
作为表名,但保留$ 1,$ 2,......作为数据值。
答案 1 :(得分:0)
有关常规解决方案,请参阅此页: