
SequelProでDMLを自動生成したかったお話
-
2021年12月29日
はじめに
こんにちは。『ポケコロ』のサーバー開発を担当しているFです。
突然ですが、エンジニアにとってSQLクライアントは必須のツールの1つだと思いますが、皆さんは何を利用されていますか?
私は長くWindows使いだったこともあり、A5:SQL Mk-2を利用していましたが、開発環境をMacに切り替えたのをきっかけにSequel Proを利用するようになりました。(A5:SQL Mk-2はWindows専用)
A5:SQL Mk-2を利用された事がある方はご存知かと思いますが、テーブルからDMLを自動生成できたりと大変便利なツールです。
Sequel Proでも同様にDMLを簡単に入力したいと思ったのですが、やり方が分からず戸惑う部分があったので、今回はSequel Proでクエリを自動生成する方法について試した事をご紹介したいと思います。
Sequel Proとは
Sequel ProはMySQLおよびMariaDBを操作するためのMac用のSQLクライアントです。
長らくMac用のSQLクライアントとして代表的な存在でしたが、2016年を最後に開発が停止していました。
2020年に後続のプロジェクトとしてSequel Aceが始動しており、本家のSequel ProではMySQL8をサポートしていない、タブを閉じるとクラッシュするなどの歯痒い問題がありましたが、それらの問題点が解消されているようです。
ですので、今回は新しい「Sequel Ace」の方を例にお話ししていきたいと思います。
やりたい事1 : 選択したテーブルのINSERT文を自動生成したい
こちらについてはとても簡単です。標準機能だけで実現できますし、UI的にも直感的に理解できるのではないでしょうか。
<手順>
INSERT分を作成したいデータを選択し、右クリックをするとメニューが出てくるので、”Copy as SQL INSERT”を選択する事でクリップボードにクエリをコピーする事ができます。
やりたい事2 : 選択したテーブルのSELECT文を自動生成したい
一般的に普段よく利用するのはSELECT文の作成ではないでしょうか?
私がA5:SQL Mk-2からSequel Ace(Sequel Pro)に切り替えた際に最も煩わしいと感じたのが、このSELECT文の作成です。
Sequel Ace(Sequel Pro)にもテーブル名やカラム名の入力を補完する機能があるのですが、INSERT文の時のように自動でDMLを生成する方法がありません。
また、入力補完機能を使ってもSELECT WHEREといった決まり文句を都度入力する事は避けられません。
そこで、Query Favorites機能を利用し、可能な限りの入力の手間を減らしたいと思います。
<手順>
事前準備として「Query Favorits」に、
SELECT * FROM {洗濯中のテーブル} WHERE {選択中のテーブルの任意のカラム} =
このようなクエリを登録し、使いまわせるようにします。
実際に設定するクエリは以下のようになります。
SELECT * FROM ${0:$SP_SELECTED_TABLE} WHERE ${1:¦$SP_ASLIST_ALL_FIELDS¦} =
プレースホルダー構文 : ${x : default_value}
x | 0から18の数字でTabキーでプレースホルダーを移動する順序を指定する |
default_value | プレースホルダーに挿入するデフォルト値を設定する。 固定値または事前定義された動的リストを使用することが可能。 動的リストの例) $ SP_SELECTED_TABLE // 現在選択されているテーブル名 ¦ $ SP_ASLIST_ALL_FIELDS ¦ // 現在選択されているテーブルのカラムの候補 |
※公式ドキュメント https://sequel-ace.com/favorites.html
また、”Tab Trigger”に任意の文字を設定する事でショートカットでクエリを呼び出せるようにしておきます。
ここでは仮にsキーを設定しておきます。
Tab Trigger : s
※「”Tab Trigger”で指定した文字列」と「Tab ⇥」を順に入力する事で登録したクエリの呼び出しが出来るようになります。
これで準備は完了です。
あとは、クエリを生成したいtableを選択した状態でTab Triggerで設定したキー(今回の例ではsキー)から「Tab ⇥」を準備入力し、お気に入りに登録したクエリを呼び出す事でSELECT文を自動生成する事ができます。
補足 : 補完候補を呼び出すショートカット
⌥ ⌘ 1 : データベースの候補を表示する ⌥ ⌘ 2 : テーブルの候補を表示 ⌥ ⌘ 3 : カラムの候補を表示
※このようにショートカットによって呼び出す補完候補の絞り込みができます
公式ドキュメント https://sequel-ace.com/shortcuts.html
終わりに
今回はSequel Ace(Sequel Pro)でクエリを自動生成する方法をご紹介しました。
SELECT文については取得するカラムがアスタリスク(*)限定など、まだまだ歯痒さが残りますが、Query Favorites機能を利用する事で少しは入力の簡略化ができたのではないでしょうか?
また、今回は取り上げませんでしたが、UPDATEやDELETEについても同様にQuery Favorites機能が利用できると思います。
ただ、本音としましては標準機能でDMLの自動生成ができるようになってくれれば一番ありがたいのですけれどね。
今後のSequel Aceに期待です。
ココネでは一緒に働く仲間を募集中です。
ご興味のある方は、ぜひこちらの採用特設サイトをご覧ください。