無料PHPプログラム

MySQL 5.1 リファレンスマニュアル :: 13 ストレージエンジンとテーブルタイプ :: 13.11 CSV ストレージエンジン :: 13.11.1 CSVテーブル修正と確認
« 13.11 CSV ストレージエンジン

13.11.2 CSV制限 »
Section Navigation      [Toggle]
  • 13.11 CSV ストレージエンジン
  • 13.11.1 CSVテーブル修正と確認
  • 13.11.2 CSV制限

13.11.1. CSVテーブル修正と確認

バージョン5.1.9で紹介する機能性

CSVストレージエンジンは、損傷したCSVテーブルを検証し、可能であればそれを修正する CHECK コマンドと REPAIR コマンドをサポートします。

CHECK コマンドを実行する時には、正しいフィールド区切り、エスケープフィールド(一致した引用符や欠落した引用符)、テーブル定義や対応CSVメタファイルとの比較フィールド数などを探す事によって、そのCSVファイルの正当性チェックが行われます。最初に発見された不正な行がエラーを報告します。正当なテーブルをチェックする事によって、下記のようなアウトプットが作成されます。

mysql> check table csvtest;
+--------------+-------+----------+----------+
| Table        | Op    | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | status   | OK       | 
+--------------+-------+----------+----------+
1 row in set (0.00 sec)

破損したテーブルを抑制するとフォルトが戻ります。

mysql> check table csvtest;
+--------------+-------+----------+----------+
| Table        | Op    | Msg_type | Msg_text |
+--------------+-------+----------+----------+
| test.csvtest | check | error    | Corrupt  | 
+--------------+-------+----------+----------+
1 row in set (0.01 sec)

もし抑制に失敗するとそのテーブルにはクラッシュ(破損)の印が付きます。一度クラッシュの印がつくと、次に CHECK を実行した時や SELECT 命令を実行した時に、そのテーブルは自動的に修正されます。破損状態や新しい状態はCHECKを実行した時に表示されます。

mysql> check table csvtest;
+--------------+-------+----------+----------------------------+
| Table        | Op    | Msg_type | Msg_text                   |
+--------------+-------+----------+----------------------------+
| test.csvtest | check | warning  | Table is marked as crashed | 
| test.csvtest | check | status   | OK                         | 
+--------------+-------+----------+----------------------------+
2 rows in set (0.08 sec)

テーブルを修正するには REPAIR を使う事が出来ます。 この機能は存在するCSVデータから可能な限りの有効な行をコピーし、存在するCSVファイルと復元された行を置き換えます。破損データを超えた行は全て失われます。

mysql> repair table csvtest;
+--------------+--------+----------+----------+
| Table        | Op     | Msg_type | Msg_text |
+--------------+--------+----------+----------+
| test.csvtest | repair | status   | OK       | 
+--------------+--------+----------+----------+
1 row in set (0.02 sec)

警告

修正の最中は、CSVファイルから最初のダメージを受けた行までだけが、新しいテーブルにコピーされるという事を覚えておいて下さい。それ以外の行は、有効であっても全て除去されます。

Copyright c 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates

無料CGI PHPスクリプト | 新着情報スクリプト | 営業日カレンダー | PHPマニュアル | MySQLマニュアル | PEARマニュアル

Copyright (c) 2010 jmcodex.com All rights reserved.