我正在使用二进制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 - 我对此表示赏心悦目,希望有人知道解决方法或解决方案。
答案 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);