Как выполнить динамическое назначение имени таблицы в SQL-запрос? - PullRequest
0 голосов
/ 27 мая 2019

Можно ли динамически назначать имя таблицы в приложении express js?

Код выглядит следующим образом

let table_name = 'fields'

await connection.query(`INSERT INTO ? (name,description) values ('user','user field')`);

Это приводит к ошибке в синтаксисе sql какзапрос, который выполняется, имеет кавычки вокруг имени таблицы следующим образом.

INSERT INTO 'fields' (name,description) values ('user','user field');

1 Ответ

0 голосов
/ 27 мая 2019

Имена таблиц и столбцов не могут быть параметризованы по тем же причинам, по которым вы не можете параметризовать имя переменной на языке программирования;они являются частью фиксированной структуры программы.Если бы имена таблиц и столбцов были разрешены для параметризации, то несколько оптимизаций, которые можно выполнить, если заранее знать структуру входных и выходных данных, больше не будут жизнеспособными

Единственное, что вы можете сделать, - это создать свойSQL в строке, используя конкатенацию, и выполнить его таким образом.Будьте очень осторожны при этом;не позволяйте потенциально враждебному пользователю вводить любые значения, которые вы объединяете, в строку без предварительной проверки их достоверности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...