Mysql Workbench Scripting Shell
MySQL Workbench の Scripting -> Scripting Shell という項目からSQLの実行をPythonで制御できるエディタが開ける
エディタを新規に起動するとすでにテンプレートでPython スクリプトが記述されているが、このimport grt
という一行が重要で、これによって Mysql Workbench のエディタがPythonで制御できるようになっている。
例えばgrt.root.wb.sqlEditors[0].executeScript()
関数を使えばPython script 内の文字列をSQLとして実行できる
文字列にはstring formatが適用できるので変数を柔軟にSQLに組み込むことができる
スクリプト例
例えばある表Aの上位100件に対して、表Aのcountyカラムに応じたレコードを表Bに挿入する処理などは次のように書ける
import grt
#import mforms
query_select = "select * from table_A limit {};"
query_insert = "insert into table_B (country) {};"
result = grt.root.wb.sqlEditors[0].executeScript(query_select.format(100))
n = result[0].rowCount -1
for i in range(0, n):
country = result[0].stringFieldValueByName("country")
editor.executeScript(query_insert.format(country+"_duplicated"))
result[0].nextRow()
SQLマスターにならないと書けないような処理でもPythonで書けば簡単に書けることが結構あります
一番のボトルネックは自分がコードを書く時間という格言もありますので、積極的にMySQLでPythonを使っていきましょう