Я пытаюсь создать подготовленный оператор при использовании библиотеки sqlx Golang. Я хочу, чтобы имя таблицы быть bindVarPostgres sqlx подготовленный оператор с именем таблицы bindvar
stmt, err := stmtTx.Preparex("SELECT * FROM $1 WHERE question_id=$2;")
Однако это дает мне ошибку синтаксиса вокруг /$1/
. Могу ли я использовать привязку var для имени таблицы?
Но это 'fmt.Sprintf' понимать идентификатор в кавычках правила? Должна быть функция в интерфейсе базы данных специально для правильного цитирования идентификаторов. –
@muistooshort Нет, только для имени таблицы. –
Я думаю, вы неправильно поняли. Идентификаторы (такие как имена таблиц и столбцов) имеют правила цитирования и экранирования, отличные от правил для, скажем, строк. В интерфейсе базы данных должны быть функции, которые знают, как правильно указывать идентификаторы. –