我正在开发一个新的服务器,我试图让一个客户有一个UUID标识符。我希望能够从web界面推送客户名称,母公司和内部id,但uuid应该是服务器端生成的。如何将UUID插入数据库?应该将uuid放入表中的ID中。
当前的设置是这样的,所以我可以用curl发送ID,并对其进行测试。代码之前所做的是从终端获取每个值。我正在尝试修改这个工作代码,以便当我创建一个新客户时,我可以把他们的名字、parent、symID和一个uuid生成到ID列。
对于symID,我还想从我目前没有权限访问的ID数据库中拉出它。我不知道这个功能是否会实现,所以目前它要么手动输入,要么根本不输入。
我正在使用pg-promise来写入postgres数据库,也使用express和bluebird。
//Database setup
...
CREATE TABLE customer(
customer_name VARCHAR,
ID varchar PRIMARY KEY,
parent VARCHAR,
symID VARCHAR
);
...
//code to create new user
...
function createUser(req, res, next) {
const user_id = uuidv4();
//need to fix id. currently it is user entered and not a uuidv4
db.none('insert into customer values(${customer_name}, ${ID}, ${parent}, ${symID})',
req.body)
.then(function () {
res.status(200)
.json({
status: 'success',
message: 'Inserted one customer'
});
})
.catch(function (err) {
return next(err);
});
}
...发布于 2019-07-02 08:40:42
只需对表定义稍作更改,即可自动生成UUID:
如果尚未安装,则需要扩展名pgcrypto。
CREATE EXTENSION pgcrypto; -- if needed
CREATE TABLE customer(
customer_name VARCHAR,
ID uuid default gen_random_uuid() PRIMARY KEY,
parent VARCHAR,
symID VARCHAR
);这将生成一个type4 uuid。取回它的值将类似于获得由sequence/serial创建的PK (在列表中我认为是这样)。
https://stackoverflow.com/questions/56837067
复制相似问题