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

问题描述 投票:0回答:1

我在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),但我显然获得了很大的值。我该如何解决?

mysql node.js sequelize.js uuid
1个回答
0
投票

只要它总是以8-4-4-4-12十六进制字符的形式,您就可以使用REPLACE()和UNHEX()来让MySQL为您完成此操作

INSERT INTO SPORTS(Id,Name,HouseId,WDate,Active)
    VALUES (UNHEX(REPLACE('66e2105c-bff5-4206-a9cc-e212f5622368','-','')),'SPORTNAME',1, '2020-05-04', 0)
© www.soinside.com 2019 - 2024. All rights reserved.