MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

mysqlimportコマンドで複数のMySQLテーブルにデータを一括インポートする方法

mysqlimportコマンドを利用すると、複数のMySQLテーブルに対して一度にデータをアップロード(インポート)できます。ここでは、2つのテキストファイルから2つのテーブルへデータをまとめて取り込む具体例を紹介します。

準備:インポートするデータファイル

まず、student1_tbl.txtというデータファイルに以下のデータが保存されているとします。

1     Saurav     11th
2     Sahil      11th
3     Digvijay   11th

同様に、House.txtには以下のデータが保存されています。

1   Furniture
2   Television
3   Refrigerator

インポート先のテーブル構造を確認する

これらのデータを格納するMySQLテーブルは次の2つです。DESCRIBE文で構造を確認しておきましょう。

mysql> DESCRIBE Student1_tbl;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| RollNo | int(11)     | YES  |     | NULL    |       |
| Name   | varchar(20) | YES  |     | NULL    |       |
| Class  | varchar(20) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)

mysql> DESCRIBE House;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Sr    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysqlimportコマンドで複数テーブルへ一括インポート

次のように、コマンドラインで複数のファイルパスをスペース区切りで指定して実行すると、2つのテーブルへ同時にデータをアップロードできます。

C:\mysql\bin>mysqlimport -u root query C:/mysql/bin/mysql-files/student_tbl.txt C:/mysql/bin/mysql-files/house.txt
query.student_tbl: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
query.house: Records: 3 Deleted: 0 Skipped: 0 Warnings: 0

ここで重要なポイントは、mysqlimportではファイル名から拡張子を除いた部分がテーブル名として扱われるという点です。そのため、ファイル名とインポート先のテーブル名を一致させておく必要があります。

インポート結果の確認

データが正しく登録されたか、SELECT文で確認してみましょう。

mysql> Select * from House;
+------+--------------+
| Sr   | Name         |
+------+--------------+
| 1    | Furniture    |
| 2    | Televisoin   |
| 3    | Refrigerator |
+------+--------------+
3 rows in set (0.00 sec)

mysql> Select * from student1_tbl;
+--------+----------+-------+
| RollNo | Name     | Class |
+--------+----------+-------+
| 1      | Saurav   | 11th |
| 2      | Sahil    | 11th |
| 3      | Digvijay | 11th |
+--------+----------+-------+
3 rows in set (0.00 sec)

このように、mysqlimportコマンドに複数のファイルパスを渡すだけで、それぞれのファイル名に対応したテーブルへデータが一括でインポートされます。また、実行結果には各テーブルごとの処理レコード数(Records)、削除件数(Deleted)、スキップ件数(Skipped)、警告数(Warnings)が表示されるため、インポートが正常に完了したかどうかも簡単に確認できます。

  1. MySQLでNULLかどうかを確認する方法|IF()関数とIS NULLの使い方を解説

    MySQLでは、IF()関数とIS NULL演算子を組み合わせることで、データがNULLかどうかを簡単に確認できます。この記事では、実際にテーブルを作成し、NULL値を含むレコードを判定する手順を、具体的なSQL文と実行結果とともにわかりやすく解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。 mysql> create table DemoTable ( Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Name varchar(200), Age int ); Query OK,

  2. MySQLのchar(1)型カラムにNULLを挿入する方法をわかりやすく解説

    MySQLのchar(1)型カラムにNULLを挿入するには MySQLでは、char(1)型のカラムにNULLを挿入したい場合、そのカラムを「NULL許容」として定義しておくことが重要です。カラム定義にNULLを明示的に指定しておけば、INSERT文を使ってNULLをそのまま格納できます。 また、sql_modeを「STRICT_TRANS_TABLES」に設定しておくと、無効な値を挿入しようとした際にエラーが発生し、データの整合性が厳密に保たれます。デフォルト設定によっては、不正な値が警告とともに自動調整されてしまうこともあるため、意図しないデータの登録を防ぎたい場合には厳密モードの活用がお