我正在开发新服务器,并试图让客户拥有UUID标识符。我希望能够从Web界面推送客户名称,母公司和内部ID,但是uuid应该在服务器端生成。如何将UUID插入数据库? uuid应该放在表的ID中。
当前设置是这样,因此我可以通过curl发送ID并进行全部测试。 代码之前所做的是从终端获取每个值。我正在尝试修改此工作代码,以便在创建新客户时可以将其名称,父级,symID并在ID列中生成一个uuid。
对于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);
});
}
...
答案 0 :(得分:0)
您可以在对表定义进行较小更改的情况下自动生成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。取回它的价值将类似于获得序列/序列创建的PK(我认为是列表中的)。