こんにちは!(daikidomon)です。
MySQL・MariaDBの「mysql」コマンドでバッチ処理・直接実行をさせる方法を紹介します。
この方法を使用することでシェルスクリプトやMS DOSからバッチ処理を行え、
スケジューリングして定期実行させることもできます。
mysqlコマンドはMySQL・MariaDBのCUIで、
SQL文だけでなく強力なメタコマンドもある非常に便利なコマンドです。
DBはインストールされている前提ですので、
MariaDB・MySQLのインストール方法は下の記事を参考にしてください。
LinuxへのMariaDBのインストールとデータベース作成
Linux上でMariaDBをインストールする手順とデータベース作成手順を紹介します。 MariaDBとは MySQLを元に作成されてオープンソースデータベース代表的なLinuxのディスト...
目次
SQLファイル等をバッチ処理
「mysql」コマンドでSQLファイル等をバッチ処理する時にするには、「<」を使用します。
mysql [db_name] -u [username] -p[password] < [batch_file]
ファイル名の拡張子の指定はなく、通常のテキスト形式でSQL文を記載すれば使用できます。
以下が実行例です。
$ cat batch.sql
select * from test001.tab001;
$ mysql test001 -u test001 -ppassword < batch.sql
col01 col02
00000 00000
00001 00001
00002 00002
00003 00003
インラインでSQLを直接実行
「mysql」コマンドでSQL文を直接実行するには、「-e」オプションを使用します。
mysql [db_name] -u [username] -p[password] -e SQL Statement
以下が実行例です。
$ mysql test001 -u test001 -ppassword -e select * from test001.tab001;
+-------+-------+
| col01 | col02 |
+-------+-------+
| 00000 | 00000 |
| 00001 | 00001 |
| 00002 | 00002 |
| 00003 | 00003 |
+-------+-------+