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

时间:2010-11-11 09:36:52

标签: mysql mysql-workbench

我正在使用二进制uuids作为密钥。有没有办法用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 - 我对此表示赏心悦目,希望有人知道解决方法或解决方案。

1 个答案:

答案 0 :(得分: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);