【MySQL】テキストファイルからSQLを実行する方法
ここではMySQLで、テキストファイルからSQLを実行する方法を紹介しています。
テキストファイルからSQLを実行する方法
テキストファイルからSQLを実行するには、SOURCEコマンドまたは\.コマンドを使います。
SOURCEコマンド
SOUCEコマンドの基本的な使い方は次の通りです。
source ファイル名
次のSQLでは、C直下のtmpフォルダにあるテキストファイルから「SELECT * FROM tab1;」というSQLを実行しています。
mysql> source C:\tmp\test.txt
+--------+----------+-------+------+
| emp_id | emp_name | dept | age |
+--------+----------+-------+------+
| 00001 | Suzuki | HR | 28 |
| 00002 | Tanaka | SALES | 25 |
| 00003 | Kizaki | SALES | 35 |
| 00004 | Tanaka | DEV | 45 |
| 00005 | Kizaki | DEV | 55 |
| 00006 | Nakata | DEV | 35 |
+--------+----------+-------+------+
6 rows in set (0.00 sec)
\.コマンド
.\コマンドの基本的な使い方は次の通りです。
\. ファイル名
次のSQLでは、C直下のtmpフォルダにあるテキストファイルから「SELECT * FROM tab1;」というSQLを実行しています。
mysql> \. C:\tmp\test.txt
+--------+----------+-------+------+
| emp_id | emp_name | dept | age |
+--------+----------+-------+------+
| 00001 | Suzuki | HR | 28 |
| 00002 | Tanaka | SALES | 25 |
| 00003 | Kizaki | SALES | 35 |
| 00004 | Tanaka | DEV | 45 |
| 00005 | Kizaki | DEV | 55 |
| 00006 | Nakata | DEV | 35 |
+--------+----------+-------+------+
6 rows in set (0.00 sec)
補足
TXT拡張子と同様に、拡張子をSQLに変更しても実行することが出来ました。
mysql> source C:\tmp\test.sql
+--------+----------+-------+------+
| emp_id | emp_name | dept | age |
+--------+----------+-------+------+
| 00001 | Suzuki | HR | 28 |
| 00002 | Tanaka | SALES | 25 |
| 00003 | Kizaki | SALES | 35 |
| 00004 | Tanaka | DEV | 45 |
| 00005 | Kizaki | DEV | 55 |
| 00006 | Nakata | DEV | 35 |
+--------+----------+-------+------+
6 rows in set (0.01 sec)
mysql> \. C:\tmp\test.sql
+--------+----------+-------+------+
| emp_id | emp_name | dept | age |
+--------+----------+-------+------+
| 00001 | Suzuki | HR | 28 |
| 00002 | Tanaka | SALES | 25 |
| 00003 | Kizaki | SALES | 35 |
| 00004 | Tanaka | DEV | 45 |
| 00005 | Kizaki | DEV | 55 |
| 00006 | Nakata | DEV | 35 |
+--------+----------+-------+------+
6 rows in set (0.00 sec)