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(ウィンドウズ7)を使用しています。

4

4 答え

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

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

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

2
追加された

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

With this tool you can use the option "File->Import", and in the window "CSV Import Field Mapping", instead of selecting to import into an existing table, you can choose the button "New".

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

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

1
追加された

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

あなたはmysqldumpを使ってこれを行うことができます。

0
追加された
MySQLは、ファイル内の任意の列のデータ型を推測することはできません。 Perlのような言語を使ってファイルを読み込み、最初の行をつかんでテーブルを作成することができます。または、mysqldumpを使用して元のデータをダンプすることができます。それは、あなたのために 'create table'ステートメントを追加します。
追加された 著者 ethrbunny,
お返事をありがとうございます。しかし、私はMySQLに新しいです、あなたはあなたの答えを詳しく教えてください。
追加された 著者 Vikas,

私が理解しているように、生成されたテキストファイルには、コマンドラインから読み込む準備のできたさまざまなデータ型があります。以下はMySQLの説明です。

to create: https://dev.mysql.com/doc/refman/5.7/en/mysql-batch-commands.html

to alter: https://dev.mysql.com/doc/refman/5.7/en/alter-table.html

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

0
追加された