使用二进制主键编辑行数据是不可能的?

Gre*_*reg 3 mysql mysql-workbench

我正在使用二进制uuids作为密钥.有没有办法用Mysql Workbench为这种模式编辑表数据?我最终得到:

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=?;
Run Code Online (Sandbox Code Playgroud)

这显然会返回错误:

ERROR 0: Value not set for all parameters
Run Code Online (Sandbox Code Playgroud)

我没有其他方法可以引用我想编辑的行.

PhpMyAdmin也破坏了所有二进制数据.

编辑 - 澄清一下,实际密钥的数据类型是BINARY(16)

编辑2 - 为了澄清更多,这个问题具体是关于MySQL Workbench.我理解准备好的陈述.

编辑3 - 我正在为此付出赏金,希望有人知道解决方法或解决方案.

ste*_*ewe 8

您可以使用以下方式显示表:

SELECT *,HEX(uuid) FROM `db`.`table`;
Run Code Online (Sandbox Code Playgroud)

示例输出:

uuid               foo      HEX(uuid)
---------------------------------------------------------------
E??|M_jE??|M_j     test     45ABFA057C4D5F6A45ABFA057C4D5F6A
.
.
Run Code Online (Sandbox Code Playgroud)

然后你可以用以下方法更新它:

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=UNHEX('45ABFA057C4D5F6A45ABFA057C4D5F6A');
Run Code Online (Sandbox Code Playgroud)

要么

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=CAST(0x45ABFA057C4D5F6A45ABFA057C4D5F6A AS BINARY);
Run Code Online (Sandbox Code Playgroud)