0
在pg-promise中,當主鍵是Serial類型時,如何插入數據?省略字段ID將在呼叫中創建任何響應。在pg-promise中插入帶有序列號的id
以下代碼在catch中不產生錯誤(並且也不執行,然後分支)。
function postSecao(req, res){
var data = req.body;
var db = pgp(cn);
db.none("insert into public.secoes(nome) values($1)", [data.nome])
.then(function() {
pgp.end();
return res.status(201).end();
})
.catch(function (error) {
console.log(err);
pgp.end();
return res.status(500).end();
});
}
表:
CREATE TABLE public.secoes
(
id bigint NOT NULL DEFAULT nextval('secoes_id_seq'::regclass),
nome character varying(100),
CONSTRAINT id PRIMARY KEY (id)
)
手動提供ID工作沒有問題。
function postSecao(req, res){
var data = req.body;
var db = pgp(cn);
db.none("insert into public.secoes(id, nome) values($1,$2)", [data.id, data.nome])
.then(function() {
pgp.end();
return res.status(201).end();
})
.catch(function (error) {
console.log(err);
pgp.end();
return res.status(500).end();
});
}
當然,SQL在PGAdmin中運行良好。
insert into public.secoes(nome) values('test')
您必須更改您的問題,並提供'.catch'中的任何錯誤輸出(如果有)。現在的方式 - 只是沒有意義你在說什麼。 pg-promise不關心底層的'serial'類型。 –
編輯放置更多細節,現在希望更好。 –