Edd*_*ddy 3 mysql uuid node.js
我正在MySql使用包将记录插入到表中,然后尝试通过询问来NodeJs mysql获取插入的记录。但是虽然记录插入正确,但返回的id始终为零。idresults.insertId
问题可能是该表Primary Key是一个UUID (BINARY 16). 如果我将其更改为INT (11)返回insertId正确的值。那么有办法解决吗?insertId如果是的话我可以得到吗UUID?
这是我的代码:
pool.query('insert into my_table (id, title) '
+ ' values(uuid(), ?', [ title ],
function (error, results, fields) {
if (error) {
console.log(error);
reject(error);
} else {
resolve(results);
}
}
Run Code Online (Sandbox Code Playgroud)
完整results对象:
OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
Run Code Online (Sandbox Code Playgroud)
您的 id 列不是 AUTO_INCRMENT 列。这就是为什么你不能使用insertId
您可以考虑生成uuid代码并将其作为参数插入到查询中。
或执行 2 个单独的查询:
SELECT UUID()
INSERT INTO my_table (id, title) VALUES ($uuid, ?)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2520 次 |
| 最近记录: |