我有这个代码
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表名称必须以字母或下划线开头。