3

我正在使用二进制 uuid 作为密钥。对于这种模式,有什么方法可以使用 Mysql Workbench 编辑表数据?我最终得到:

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=?;

这显然会返回一个错误:

ERROR 0: Value not set for all parameters

我没有其他方法可以引用我要编辑的行。

PhpMyAdmin 也因损坏所有二进制数据而失败。

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

编辑 2 - 为了进一步澄清,这个问题专门针对 MySQL Workbench。我理解准备好的陈述。

编辑 3 - 我对此悬赏,希望有人知道解决方法或解决方案。

4

1 回答 1

8

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

SELECT *,HEX(uuid) FROM `db`.`table`;

示例输出:

uuid               foo      HEX(uuid)
---------------------------------------------------------------
E��|M_jE��|M_j     test     45ABFA057C4D5F6A45ABFA057C4D5F6A
.
.

那么您可以使用以下方法更新它:

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=UNHEX('45ABFA057C4D5F6A45ABFA057C4D5F6A');

或者

UPDATE `db`.`table` SET `foo`='bar' WHERE `uuid`=CAST(0x45ABFA057C4D5F6A45ABFA057C4D5F6A AS BINARY);
于 2010-11-19T05:20:00.020 回答