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