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 に答える