バッチ処理などで定期的に、DBの値を更新したりしたい場合があります。
その場合は、シェルスクリプトでSQLを実行しそれをcronなどで定期的に呼び出すようにするのが一般的です。
シェルスクリプトからSQLを実行する場合は、以下の3つの書き方があります。
1.SQL文とシェルスクリプトを分ける方法
update.sqlというファイルに実行したいSQLを予め記述しておき、以下のように記述。
$ mysql -u [ユーザー] [DB名]
SQL文を別ファイルで分けられるので、使い勝手がよくシェルスクリプトも見やすくなります。
2.-eオプションで実行
-eオプションを使えば、そのままSQLを記述して実行できます。
$ mysql -u [ユーザー] [DB名] "update hoge SET id = 1;"
簡単なSQL文の場合はこれでいいかもしれません。
3.ヒアドキュメントを使う
長いSQL分や、複数のSQLを実行したい場合はヒアドキュメントを使うのが便利です。
$ mysql -u [ユーザー] [DB名]※この記事は、なかの人(moresmileman)が書いています。