如果用户名不存在于 postgresql POOL 查询中,如何插入用户名
How to insert a username if it doesn't already exist with a postgresql POOL query
我正在制作一个游戏,我最近添加了一个服务器数据库得分保护程序,但我不知道如何插入一个用户名,如果它不存在这里是以下查询:
const addUser = (req, res) => {
const {username, score} = req.body;
pool.query(
'INSERT INTO userlist (username, score) VALUES (, )',
[username, score],
(err) => {
if(err){
throw err;
}
res.status(201).json({status: "success", message: "User added."});
},
);
}
我想我必须更改查询
这也是我的 SQL 代码,用于创建 table:
CREATE TABLE userlist(
ID SERIAL PRIMARY KEY,
username VARCHAR(255),
score VARCHAR(255)
);
使用 if 语句来确定用户名是否存在,然后更新它
if (Users::where('name', $request->user_name)->exists()) {
return response()->json(['record exist']);
} else {
$save = new Users;
$save->name = $request->user_name;
$save->save();
return response()->json(['User saved successfully.']);
}
处理这个问题的最好方法是让数据库验证用户名的唯一性:
alter table userlist add constraint unq_userlist_usename unique(username);
现在,如果您尝试插入单行,那么如果该行已经存在,它将 return 出错。
如果您不想出错,可以使用 on conflict
子句。但是,在这种情况下,异常似乎有助于通知用户 username
已经存在。
我正在制作一个游戏,我最近添加了一个服务器数据库得分保护程序,但我不知道如何插入一个用户名,如果它不存在这里是以下查询:
const addUser = (req, res) => {
const {username, score} = req.body;
pool.query(
'INSERT INTO userlist (username, score) VALUES (, )',
[username, score],
(err) => {
if(err){
throw err;
}
res.status(201).json({status: "success", message: "User added."});
},
);
}
我想我必须更改查询 这也是我的 SQL 代码,用于创建 table:
CREATE TABLE userlist(
ID SERIAL PRIMARY KEY,
username VARCHAR(255),
score VARCHAR(255)
);
使用 if 语句来确定用户名是否存在,然后更新它
if (Users::where('name', $request->user_name)->exists()) {
return response()->json(['record exist']);
} else {
$save = new Users;
$save->name = $request->user_name;
$save->save();
return response()->json(['User saved successfully.']);
}
处理这个问题的最好方法是让数据库验证用户名的唯一性:
alter table userlist add constraint unq_userlist_usename unique(username);
现在,如果您尝试插入单行,那么如果该行已经存在,它将 return 出错。
如果您不想出错,可以使用 on conflict
子句。但是,在这种情况下,异常似乎有助于通知用户 username
已经存在。