mysql - 如何正确地将 uuid 转换为 BINARY(16)?

标签 mysql node.js sequelize.js uuid

我在 mysql 表中有一个 BINARY(16) 类型的 id 字段。

我生成以下 ID:66e2105c-bff5-4206-a9cc-e212f5622368

使用这段代码:

const v = uuidV4Bytes(16);

通过sequalize插入的是:

INSERT INTO SPORTS(Id,Name,HouseId,Date,Active)
        VALUES ('66e2105c-bff5-4206-a9cc-e212f5622368','SPORTNAME',1, '2020-05-04', 0)

问题:

Error Code: 1406. Data too long for column 'Id' at row 

我正在尝试将 uuid 转换为二进制 (16),但显然我得到的值太大了。 我该如何解决这个问题?

最佳答案

感谢@hanshenrik,我开始寻找一种在 nodeexpress 中使用 UNHEX 的方法。

我发现了以下内容:

const byteValue = Buffer.from(uuidV4Bytes(16).replace('-', ''), 'hex')

这成功了。但是我不能说这是最佳方式,但它解决了我的问题。

关于mysql - 如何正确地将 uuid 转换为 BINARY(16)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62286812/

相关文章:

php - mysql_insert_id 使用安全吗?

arrays - 检查 mongo 集合中是否存在值

mysql - 当我发布到我最新的 MySQL 表时出现 ReactJS 错误

javascript - 使用 Sequelize 添加/删除字段

mysql - DBIx 迁移无法识别 MySQL

php - 用户表应该与网站内容位于不同的数据库中吗?

php - 如果发生重复输入错误,如何将用户重定向到其他页面?

node.js - 如何修复( Node :12388) [DEP0066] DeprecationWarning: OutgoingMessage. prototype._headers 在 Windows 中已弃用

node.js - Sequelize orm 中的批量更新

sequelize.js - 如何在 Sequelize 表中指定范围?