【SQL】シェルスクリプト外部SQLファイルへの変数渡しについて
どうもマルネギです。
今回は久々にがっつり技術的な備忘録です。
かなりでかいデータベーステーブル作るときってphpの中に書いちゃうとコードが汚くなったり、メンテナンスが大変だったりするんで、.sqlファイルにCreate文を書いておいて、シェルスクリプトから実行みたいなことってすると思うんですよ。
今回ここの変数渡しで詰まったのでメモ。
ちなみに、いきなり結論から書くと、php→sh、sh→sqlの変数渡しは「できない」と考えた方がよさそうということがわかりました。
そもそも、sqlファイルってただのテキストなのでそこまで高機能なものは備えていないっぽいです。
また、どうしても変数を渡したいってなったときは、ヒアドキュメントという書き方があるので、ここからやったほうがよさそうです(ソースは内部で持つ必要があるけどね)。
・ヒアドキュメントについてはこちら
https://qiita.com/take4s5i/items/e207cee4fb04385a9952
あと、シェルスクリプトなので、一時的にsqlファイルの変えたいところを置換して、クエリ発行後戻すとかもできそうですが、間に何か別処理が入ってるとかあるとひじょーに怖いので、おすすめはできない気がします。
sqlファイル呼び出しもヒアドキュメントと同じくトランザクション活用できるなら、あってもいい機能だと思うんだけどなぁ...
もし何か、それできるよ!って方いたら教えてもらえると嬉しいです!
ではでは!
ディスカッション
コメント一覧
まだ、コメントがありません