我正在尝试使用Golang sqlx库创建准备好的语句。我想让表名成为bindVar
stmt, err := stmtTx.Preparex("SELECT * FROM $1 WHERE question_id=$2;")
但是,这给了我一个语法错误/$1/。我可以不使用绑定变量作为表名吗?
/$1/
我可以不使用绑定变量作为表名吗?
不,报价来源。
参数只能用作数据值,不能用作标识符。因此,例如,这是合理的: INSERT INTO mytable VALUES ($1); 但这不起作用: INSERT INTO $1 VALUES (42);
参数只能用作数据值,不能用作标识符。因此,例如,这是合理的:
INSERT INTO mytable VALUES ($1);
但这不起作用:
INSERT INTO $1 VALUES (42);
但是,如果需要,可以使用fmt.Sprintf表名,而将$ 1,$ 2,…保留为数据值。
fmt.Sprintf