この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14199|答える: 0

[出典] HEX関数とUNHEX関数は、mysql内のバイナリデータのインポートおよびエクスポートに使用されます

[リンクをコピー]
掲載地 2016/06/13 22:27:47 | | |

mysqlのデータバックアップおよび復旧作業で問題が発生しました。sqlyogでデータバックアップを行い、別のサーバーでデータを復元した後、テーブルの一つのvarbinaryフィールドのために「'」区切りが消費され(バイナリエンコーディングの問題により、引用符区切りがデータの一部として扱われ)、通常通りデータを取り込めなくなったのです。

一部のテキストツールは処理に使われましたが、うまくいかず、認識可能なものもあればバイナリエンコードされたデータを自動で修正し、さらに別のバイナリデータを挿入して依然として読み取れなくなるものもありました。

他の方法も考えてみてください。データを読み取り、SQL文をスペルし、インポートする。 具体的な方法は以下の通りです:

(1) HEX関数を使ってエクスポート時にデータを読み取り、バイナリデータを16進文字列に変換する;

testTableからHEX(binField)を選択します。

(2) UNHEX関数を使って16進文字列をインポート時にバイナリデータインポートデータベースに変換する;

insert into testTablebinField values(UNHEX(@hexstr));



以下のコードはHEXおよびUNHEXの機能を示しています。

SELECT HEX('これはテスト強度です)」とクエリの結果は次のようになります:746869732069732061207465737420737472
SELECT UNHEX('746869732069732061207465737420737472')を選び、クエリの結果は「これはテストストラットです」となります

また、16進数文字を直接読み取ることもでき、文字列に0x接頭辞を加えます:
SELECT 0x746869732069732061207465737420737472、クエリ結果は「これはテストストラットです」となります



さらに、バイナリのインポート・エクスポート方式を使ってデータのバックアップや復元も可能です。 ここに議論はありません。




先の:ディスカズはポスト・pre_forum_post・テーブルデータの欠落は見つけませんでした
次に:SQL XML 入門チュートリアル
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com