2017-02-16 1 views
0

У меня есть последовательность, установленная в postgres EX: seq_id_gen. Когда я передаю эту последовательность в мой статический запрос, строка передается и не получает оценку. Есть ли способ снять кавычки? Кто-нибудь знает способ сделать это без необходимости динамического создания этого запроса?Передача в последовательности postgres в качестве параметра запроса запроса

My SQL запрос

INSERT into table (SELECT $1, $2, $3,$4) 

В моей функции я называю этот запрос по

query(myquery, ['currval(\'seq_id_gen\')' , param1, param2, param3]); 

Что происходит это утверждение становится

INSERT into table (SELECT 'currval(\'seq_id_gen\')' , param1, param2, param3) 
+0

Что такое водитель? Что такое язык функций? –

+0

javascript, backend с использованием pg – clearner

+1

Несвязанный, но: почему этот странный формат вставки? Почему бы вам не использовать «стандартный» способ, используя 'insert into table values ​​(...)' –

ответ

0

Если вы хотите оценить SQL кода в одном из ваших параметров, вам придется использовать динамический SQL следующим образом:

EXECUTE 'INSERT into table VALUES (' 
     || param1 || ', ' 
     || param2 || ', ' 
     || param3 || ', ' 
     || param4 ')'; 

Убедитесь, что пользовательский ввод не может быть использован с конструкцией, подобной этой, так как это сделает вас уязвимыми для SQL injection.

 Смежные вопросы

  • Нет связанных вопросов^_^