синтаксическая ошибка в или около значения $ 1 pg-обещание node.js - PullRequest
0 голосов
/ 14 марта 2019

У меня есть этот код

this.createtablePy = function(){
 db.none("CREATE TABLE IF NOT EXISTS $1 ( $2 serial NOT NULL, data jsonb", ["pyTable", "id_py"])
 .then(()=> 
 {
     console.log("done pyme table ");
 })
 .catch(error =>{
     console.log("Error; " + error);
 });
};

, и я получаю эту ошибку (ошибка SQL?)

Error; error: syntax error at or near "'pyTable'"

, но когда я пытаюсь это сделать, все нормально

this.createtablePy = function(){
 db.none("CREATE TABLE IF NOT EXISTS pyTable ( id_py serial NOT NULL, data jsonb")
 .then(()=> 
 {
     console.log("done pytable ");
 })
 .catch(error =>{
     console.log("Error; " + error);
 });
};

результат

done pytable

и pytable создан в базе данных, что я делаю не так?

почему оператор db.none не принимает параметры?

Обновление

Я не знаю почему, но это работает:

this.createtablePyme = function(){
 db.any("CREATE TABLE IF NOT EXISTS $[table:name] ( $[id:name] serial NOT NULL, data jsonb)", {table: 'pytable', id: 'idPyme'})
 .then(()=> 
 {
     console.log("Creada base de datos py");
 })
 .catch(error =>{
     console.log("Error; " + error);
 });
};

и использование $ 1: имя и вставка значений с [] тоже работает.

1 Ответ

0 голосов
/ 14 марта 2019

Имена таблиц Postgres должны начинаться с буквы или подчеркивания, согласно документации .

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