こんにちは。
シェルスクリプト(今回は Bash)内で MariaDB(MySQL) の SQL を実行する際、 -e
or --execute
オプションを使用することが多いと思います。
しかし、複数の SQL(特にトランザクション処理)を実行する際、このオプションではワンライナーにするしかありません。
別ファイルにした SQL を取り込むことも可能ですが、それだと Bash の引数が渡せません。
以下、Bash スクリプト内でワンライナーにせず、ヒアドキュメントを使用して複数 SQL を実行する例です。(Bash 引数渡しも可)
0. 前提条件
- Bash スクリプトを想定。
1. Bash スクリプト
以下のような Bash スクリプトを作成する。
ヒアドキュメント内に Bash 引数が渡せる。また、トランザクションも効く。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
MariaDB(MySQL) のバージョンによっては、mysql
コマンドで直接パスワードを指定すると Bash スクリプト実行時にセキュリティに関する警告が出るかも知れませんが問題ありません。
Bash スクリプトのみで複数の SQL 文を実行したい場合に役立つと思います。
以上。