语法错误等于或接近$ 1值pg-promise node.js

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了语法错误等于或接近$ 1值pg-promise node.js相关的知识,希望对你有一定的参考价值。

我有这个代码

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:名称和传递值与[]也有效。

答案

根据documentation,Postgres表名称必须以字母或下划线开头。

以上是关于语法错误等于或接近$ 1值pg-promise node.js的主要内容,如果未能解决你的问题,请参考以下文章

Postgres SequelizeDatabaseError:返回或接近返回的语法错误

尝试迁移 postgreSQL 时出现或接近“WITH ORDINALITY”错误的语法错误

java math.floor是啥意思

java.sql.SQLException:接近“on”:语法错误问题

如何使用 pg-promise 帮助器返回插入查询结果值

js 向上和向下取整