[MySQL] テーブルのエクスポートで、レコード数の不一致が生じる問題 [phpMyAdmin,Dump all rows]

この記事は約1分で読めます。
スポンサーリンク

当サイトには広告が含まれています。

DB(MySQL)にある巨大なテーブルをローカルに保存したいという質問を受けた。

保存自体は、phpMyAdminにあるエクスポートで可能なのだが、

エクスポート

ダウンロードした後、落としたファイルのレコード数と、テーブル上のレコード数を確認するように。

テーブルへの書き込みを止めてこれを行っても、ファイル<テーブル上となることがあるのだ。

テーブルへの書き込みは止めているのでそれ以上レコードは増えないのだが、ファイルとテーブルのレコード数に差があり、調べてみると、終端のレコードが欠損している。

ダウンロード回線の問題で、ファイルが破損している可能性もあるが、そうではない。

実は、phpMyAdminのエクスポートには、ダンプ行を指定する箇所がある。

ダンプ行を指定する箇所

これが、その時点でのレコード数と一致していないことがあるのだ。

上では651001行とあるが、この時点でのレコード数は、それよりも多い。

つまり、この設定のままエクスポートすれば、後ろのレコードが抜けてしまう。

意図的に「Dump all rows」にチェックを入れて、実行する必要がある。

最終レコードの比較を、ファイルとテーブルで行うワケだが、ファイルがGBを超えるような巨大ファイルだと、ファイルを開けないことがあるので、終端の一部のみを開けるようなエディターが必要になる。

This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny

タイトルとURLをコピーしました