当我在 PG 管理查询工具中尝试时,此查询对我有用:
UPDATE bankdetails SET bank_details = 'mysore' ,"PAN"= 123,bank_acc = 456,
"UAN"=789,tax = 'myy'
WHERE user_id = 79;
INSERT INTO bankdetails (user_id,bank_details,"PAN",bank_acc,"UAN",tax)
SELECT 79,'mysore',123,456,789,'myy'
WHERE NOT EXISTS (SELECT 1 FROM bankdetails WHERE user_id=79);
Run Code Online (Sandbox Code Playgroud)
后来我在我的代码中是这样实现的:
db.query('UPDATE bankdetails SET bank_details = $2 ,"PAN"= $3,bank_acc = $4,"UAN"=$5,tax = $6 WHERE user_id = $1; INSERT INTO bankdetails (user_id,bank_details,"PAN",bank_acc,"UAN",tax) SELECT $1,$2,$3,$4,$5,$6 WHERE NOT EXISTS (SELECT 1 FROM bankdetails WHERE user_id = $1);', [companyuser.rows[0]._id, data.bankDetails.bank_details, data.bankDetails.PAN, data.bankDetails.bank_acc, data.bankDetails.UAN, data.bankDetails.tax],function(err,bank) {
if (err) return callback(new …
Run Code Online (Sandbox Code Playgroud) 如何计数,postgresql 用户表中公共字段的真假如何我试过这个查询
select
sum(case when false then 1 else 0 end) as false,
sum(case when true then 1 else 0 end) as true
from public.user;
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何价值,如果我从查询中删除 public 那么我将得到正确的计数,只有我的值为 true
table : name| DOB | public
values : bb | 20/2/1991/| true
op : true = 1 and false = 0
Run Code Online (Sandbox Code Playgroud)
但是当我公开为假时,我得到了相同的答案
table : name| DOB | public
values : bb | 20/2/1991/| false
op : true = 1 and false = 0
Run Code Online (Sandbox Code Playgroud)
所以有人请帮我解决这个问题
如何在同一个查询中执行更新和插入?我需要更新记录,如果它不存在那么它必须执行插入我试过这个
UPDATE bank SET Address= $2,"PANCard"= $3,"IFSC" = $4 WHERE user_id = $1;
INSERT INTO bank (user_id,bank_details,"PAN",bank_acc,"UAN",tax)
SELECT '$2','$3','$4','$5','$6'
WHERE NOT EXISTS (SELECT * FROM bank WHERE user_id=$1);
Run Code Online (Sandbox Code Playgroud)
但我越来越
{
"name": "error",
"length": 123,
"severity": "ERROR",
"code": "42601",
"file": "postgres.c",
"line": "1274",
"routine": "exec_parse_message"
}
Run Code Online (Sandbox Code Playgroud)
请在这里帮助我
我想设置status
到false
所有行除一人外,应应设置为true
。我怎样才能做到这一点?
这是我试过的查询:
UPDATE students set status = false where status = true and
set status = true where _id = 1;
Run Code Online (Sandbox Code Playgroud)