2012-02-06 16 views
4

大きな数のファイルがあり、このファイルをmysqlテーブルに入力したいと思います。mysqlの入力ファイルに従ってテーブルを自動的に作成します

事は、我々は8列、たとえば、とのファイルを持っているならば、我々は最初にしてテーブルを作成しますです -

CREATE TABLE `input` (
    `idInput` varchar(45) DEFAULT NULL, 
    `row2` varchar(45) DEFAULT NULL, 
    `col3` varchar(45) DEFAULT NULL, 
    `col4` varchar(45) DEFAULT NULL, 
    `col5` varchar(45) DEFAULT NULL, 
    `col6` varchar(45) DEFAULT NULL, 
    `col7` varchar(45) DEFAULT NULL, 
    `col8` varchar(45) DEFAULT NULL 
); 

その後、我々は入力して、ファイル -

LOAD DATA INFILE "FILE" INTO TABLE input; 

しかし、事私は150列のファイルを持っており、このファイルを自動的にmysqlテーブルに挿入したいので、最初にテーブルを作成する必要はありません。私のファイルの最初の行はヘッダーであり、テーブルの列名である必要があります。また、各列と各行には異なるデータ型があります。

これを行う簡単な方法はありますか?その後、私はこのテーブルで別のことをすることができますか?

私はmysqlコマンドラインクライアントバージョン5.5.20(Windows 7)を使用しています。

答えて

0

これは、まっすぐなMySQLを使用して行うことはできません。何とか列の定義を推測する必要があります。最初の行を読んでテーブルを作ってからインポートするには、二次言語を使う必要があります。

これはmysqldumpを使用して行うことができます。

+0

ご返信ありがとうございます。しかし、私はMySQLに新しいです、あなたはあなたの答えを詳しく教えてください。 – Vikas

+0

MySQLは、ファイル内の任意の列のデータ型を推測できません。 Perlのような言語を使ってファイルを読み込み、最初の行をつかんでテーブルを作成することができます。または、mysqldumpを使用して元のデータをダンプすることができます。それは、あなたのために 'create table'ステートメントを追加します。 – ethrbunny

1

phpmyadminを使用してください。それは、ファイルの最初の行にテーブルベースを作成する能力を持っており、と推定されます。 [インポート]リンクをクリックし、ファイルを選択します。あなたのファイル形式、主にCSVに合わせてフォーマットを選択することを忘れないでください。

ファイルが大きすぎてphpmyadminに収まらない場合は、ファイルを「頭出し」し、phpmyadminでヘッドファイルを使用してテーブルを作成し、LOAD DATAコマンドを使用してファイルをインポートします。

これは私の人生を楽にします。

1

SequelPro mysql clientを試すことができます。

このツールでは、[ファイル - >インポート]オプションを使用できます。既存のテーブルにインポートするかどうかを選択する代わりに、[CSVインポートフィールドマッピング]ウィンドウで[新規]ボタンを選択できます。

CSVに列名を説明するヘッダー行があると、正しい列名が得られます。このツールは、内容に応じて列の種類を推測するのにも適しています。

VARCHAR(255)がテキスト・タイプのフィールドのデフォルト・タイプとして設定されていると、最終的に問題が発生する可能性があります。そのような場合は、これらのフィールドのタイプをTEXTタイプに変更します。

0

私が理解しているように、コマンドラインから読み込む準備ができた異なるデータ型を持つ生成テキストファイルがあります。以下はMySQLの説明です。 https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html

を変更する: https://dev.mysql.com/doc/refman/5.7/en/alter-table.html

を私も使用しているすべてのコマンドラインを作成するには

。(誰かが、それらのMySQL Developer Environmentを使用する方法のすべてのステップを説明する便利なビデオを持っていれば、テーブルをロードするのに20ステップを要しない、という方がいいでしょう。 1つ手で入力し、1つのステップを使用するか、ダンプを編集してください)。

関連する問題