入力されたSQLはブラウザ内でのみ処理され、外部へ一切送信されません。サーバーもインストールも不要です。

入力中も自動でチェックします

SQLを貼り付けると、ここに解析結果が表示されます。

これは何?

本番データベースに手作業でUPDATE/DELETEを実行する前に、SQLを貼り付けるだけで 「このSQLが何をするか」を日本語で読み返せるツールです。 操作対象・WHERE条件・JOINで残る行と落ちる行を日本語で書き下し、あわせて 「WHERE句の抜け」「常に真になる条件」「外部結合がWHEREで打ち消されている」などの 定番の事故パターンを検出します。組織への導入やアカウント登録は不要で、 このページを開くだけで使えます。

MySQL / PostgreSQL / SQL Server を選んだ場合は、ページに同梱したSQLパーサで 構文解析(AST)を行い、日本語要約とAST基盤の検出を表示します。 Oracle・汎用を選んだ場合、および構文解析に失敗した場合は、 従来の正規表現ベースの簡易チェックに切り替わります(画面上に明示されます)。

PL/SQL(CREATE OR REPLACE PACKAGE / PROCEDURE / FUNCTION / TRIGGERDECLAREBEGIN 〜 END; /)を貼り付けた場合は、ブロックの構造を読み取って 中に埋め込まれたDML(INSERT / UPDATE / DELETE / MERGE / SELECT INTO・カーソル定義)を1本ずつ取り出し、 通常の文と同じチェックをかけます。ただし 制御フロー(ループ・分岐・例外処理)は解析していません。 どのDMLが実際に何回実行されるか、例外時に何がロールバックされるかは判断していないため、 抽出したDML単位の簡易チェックとして読んでください。

これは需要検証のための試作品(プロトタイプ)です。 構文解析に成功した場合でも、意味論のすべてを検査できるわけではありません。 「危険が検出されない = 安全」ではありません。 最終判断は必ず人間が行い、可能な限り検算SELECTやステージング環境での確認を併用してください。

チーム版に興味はありますか?

CI/CD連携によるプルリクエスト時の自動チェック、ルールのカスタマイズ、 レビュー履歴の保存・共有など、チーム運用向けの機能を検討中です。 興味がある方・ご意見のある方は、GitHubのDiscussionsで教えてください。 現在のSQLMeganeについての質問・要望も歓迎します。 「使ってみたけど合わなかった」「既存の方法で足りている」という声も、同じくらい参考になります。

誤検知・検出漏れの報告はIssueで歓迎します。特に誤検知の報告はお待ちしています (検出漏れより誤検知のほうが、ツールへの信頼を早く壊すため)。

質問・要望はこちら 使わない・合わない理由を教える 誤検知・検出漏れを報告(Issue)