SQLエディタで複数のSQLを実行するとき、どんな操作が理想ですか?
Discussion
現在、LibreDB Studio というオープンソースのSQLエディタを開発しています。
開発中に、ボランティアのコントリビューターから「エディタに複数のSQL文が書かれている場合、ユーザーが Run を押したら何を実行するのが自然なのか?」という話題が出ました。
例えば、次のようなSQLを書いているとします。
CREATE TABLE users (...);
INSERT INTO users VALUES (...);
SELECT * FROM users;
ここで、ユーザーが何も選択せずに Run を押した場合、皆さんはどのような動作を期待しますか?
よくある考え方
カーソル位置を基準にする
- カーソルがあるSQL文だけを実行する
- SQLが長い場合でも、必要な文だけすぐ実行できる
- 選択した場合は、その部分だけを実行する
エディタ全体を基準にする
- 選択なし → エディタ内のSQLを上から順番に実行
- 選択あり → 選択範囲だけを実行
- 実際に何が実行されるのかを判断しやすい
操作を明確に分ける
RunRun SelectionRun All
のように、それぞれの操作の意味を明確にする方法もあります。
ここで少し気になっていること
単に「どれが好きか」だけではなく、実際のSQL開発では次のようなケースがあります。
- SQL文の途中にカーソルがあるとき、「現在のSQL文」をどう判定するのがよいか
- セミコロンがないSQLや、編集中でまだ不完全なSQLをどう扱うか
- 10個のSQL文を実行して、7個目でエラーになった場合にどうするか
- 複数のSQL文を実行するとき、トランザクションをどのように扱うべきか
- 複数のSELECTがある場合、それぞれの結果セットをどのように表示すると使いやすいか
- キーボードショートカットはどのような操作体系が使いやすいか
私はこれまでDBeaver、DataGrip、SSMS、PL/SQL Developer、Toadなど、いくつかのデータベースツールを使ってきましたが、ツールによってかなり考え方が違うと感じています。
そこで、実際にSQLを日常的に書いている方に聞いてみたいです。
皆さんが普段使っているSQLエディタでは、どのような実行方法が一番使いやすいですか?
「この操作が好き」「この挙動は怖い」「こうなっていると助かる」など、実際の経験を教えていただけるとうれしいです。
このテーマについては、現在GitHubでも議論しています。興味があれば、こちらもご覧ください。
0 likes