ふくふくHukuhuku Inc.
EP.55Toolbox 11分公開:

Postquelでデータを確かめてから変更する。Mac用AIデータベースクライアントの試し方

手持ちのAIを使えるMac用Postquelを、架空の請求データで確認。読み取り専用ツールと変更提案、Dry Run・Applyの違いをSQL教材とともに解説します。

#Postquel#PostgreSQL#Mac#SQL#検証
執筆 / 監修
松尾 亮合同会社ふくふく 代表社員

データ基盤・データパイプライン構築 / BI / 生成 AI 活用支援を専門とするエンジニア (28 年)。 本記事は AI 利用ポリシーに基づき、生成 AI の補助で執筆 → 人間が監修・編集して公開しています。

プロフィール詳細
シェア

「この請求だけ状態を直したい」と頼んだとき、AIがどの行を変えるつもりなのか、実行前に確かめられると安心です。は、Macでの表を見ながらAIへ質問し、の変更案を確認できる、新しいデータベースクライアントです。

特徴は、AIによる読み取りと、人による変更の適用を分けた作りです。列名を調べて集計し、変更が必要なら案を出し、利用者が試行してから確定する流れを用意しています。この記事では、その境界を日本語の架空業務データで確かめる手順を扱います。配布された実アプリのデータベース用ツールと、編集部作成のSQL教材を確認しました。AIの文章生成と画面上のボタン操作は試していません。

初版 v0.1.0 は日本時間2026年10月6日0時35分26秒に公開されました。確認した v0.1.1 は同日1時5分22秒の配布で、変更内容はアイコンです。開発元はまだ試作段階としています。初版の発表・確認した配布版

いつものAIログインを使い、表とSQLを同じ画面で扱う

Postquelには表の閲覧・編集、SQLの実行、AIへの相談画面があります。「この条件で集計したい」と頼むと、AIが接続先の列を調べ、SQLを編集画面へ入れる構成です。

AI部分は、Macへ導入しログイン済みの、、Cursor Agentのいずれかを利用します。Postquel自体に大きな言語モデルを内蔵する方式ではありません。通常の表の閲覧やSQL実行と、AIによる生成は別の機能です。固定版の説明

確認するものv0.1.1での条件
対応するパソコンmacOS 15以降、Apple siliconとIntel
配布方法開発元が署名・公証済みと説明するMac用ディスクイメージ
対象データベースPostgreSQL。接続できるサーバーと利用権限が必要
接続部品必要なクライアント用ライブラリを同梱。接続先のサーバーを自動で用意する意味ではない
AI機能対応するの導入とログインが必要。使えるモデルや利用枠は契約・アカウント次第
費用PostquelはMITライセンスで公開。AIサービスの利用条件や課金、データベースの運用費は別

日本語のデータを保存したPostgreSQLでも、列の意味や抽出条件を確かめながら扱えます。ただし、日本語で依頼したSQLが正しいかは選んだAIと指示に依存します。

「読む」「案を出す」「試す」「確定する」を分ける

Postquelの読み取り、変更案、Dry Run、Applyの流れ。推定件数と実際の変更件数を分けて確認する
v0.1.1の公開コードに基づく説明図。AIが生成するSQLの品質や、画面操作の実測を表す図ではありません。

AIに渡されるデータベース用ツールは、でつながります。公開コードでは、表の一覧、列・制約の説明、読み取りSQL、実行計画の確認が用意されています。変更用の道具は、書き込みを実行するものではなく、利用者へ案を提示する propose_change です。

操作何が起きるか人が確かめる点
読み取りrun_query が読み取り専用の処理でSQLを実行対象期間、除外条件、集計単位
変更案propose_change がSQLと概要を提示変更する表、列、対象行
Dry Run変更を実行した後、取り消す影響する行数とエラー
Apply確認画面を経て変更を確定接続先、対象行、変更前後の値

読み取りツールは、1つのSQL文を BEGIN READ ONLY で実行し、最後に取り消します。複数文を一度に渡して、読み取りの処理を抜けてから書き込む使い方も、接続側で拒否する構成です。読み取りツールの実装

変更案に表示される件数にも違いがあります。提案時の Planner estimate は、SQLの実行計画から取った推定値です。実際に更新した件数ではありません。Dry Runでは実行結果の件数を見られますが、その後に別の人が行を追加・変更すれば、Apply時の対象が同じとは限りません。

また、読み取り専用なのはこのAI用の経路です。通常のSQL編集画面や表の編集機能まで、常に書き込み禁止になるわけではありません。読み取りを試すだけなら、データベース側でも必要な表だけを読めるユーザーを用意すると、アプリの操作と権限の範囲をそろえられます。

最初は架空の請求表で、対象行を先に確かめる

最初の接続先は、業務データベースから切り離した練習用にします。今回の教材は invoices という表に、識別番号 id、架空の取引先名 customer、円単位の金額 amount_yen、状態 status を入れた6行です。実在の顧客や入金情報は使いません。

架空の請求データと確認用SQLをダウンロードできます。READMEに従い、空の練習用データベースで setup.sql を一度実行し、check.sql、dry-run.sql、apply.sql の順に確認します。SQLファイルをまとめて実行する手順は psql 用です。Postquelの画面では、複数文を選択して一括実行するのではなく、各SQL文にカーソルを置いて⌘Returnで順番に実行します。

状態教材の件数教材の金額合計
unpaid(未入金)3件38,000円
paid(入金済み)2件11,000円
cancelled(取消)1件5,000円

この表は、教材に設定した初期値を人が検収するためのものです。「未入金の金額」を確かめたいなら38,000円で、取消分を含む総額54,000円ではありません。顧客ごとの集計か、請求ごとの集計かも、質問に含める必要があります。

コピーして使う依頼文
接続先は架空データの練習用です。invoicesの列を調べてください。
statusがunpaidの請求件数と、amount_yenの合計を確認してください。
paidとcancelledは含めません。最初は読み取りだけにしてください。
次にid=1の現在のstatusとamount_yenを確認してください。
存在しない列を推測せず、使用したSQLと結果を示してください。

これは編集部作成の練習例です。次のSQLなら、AIの日本語説明だけに頼らず状態別の件数と金額を確かめられます。教材の初期状態で実行し、上の表と照らし合わせます。

SQL
SELECT status, COUNT(*) AS invoices, SUM(amount_yen) AS amount_yenFROM invoicesGROUP BY statusORDER BY status;

v0.1.1の読み取りツールは、AIへ返す行数が既定100行、指定上限1,000行です。返す行数の制限であり、SQLが読む行数の制限ではありません。 大きな表では件数や合計を先に計算し、必要な対象期間も条件に入れます。基本は社内データベースから取得するときの作法でも扱っています。

変更案が正しくても、Dry RunとApplyは別に確認する

次に、教材の id=1、12,000円の1件だけを、unpaid から paid へ変更する案を作ります。変更後の集計は、未入金が2件26,000円、入金済みが3件23,000円、取消は1件5,000円のままです。これは操作の練習条件であり、現実の入金確認をAIに任せる指示ではありません。

コピーして使う依頼文
invoicesのid=1だけ、statusをunpaidからpaidへ変える案を出してください。
現在もunpaidであることを条件に含め、金額や取引先名は変更しません。
propose_changeで提案し、適用は私の確認を待ってください。

SQLでは、識別番号だけでなく変更前の状態も条件に入れると、すでに別の人が処理した行を再び変える状況に気付きやすくなります。対象が0行なら、成功と決めつけず、すでに処理済みか、識別番号や状態の指定が違うのかを読み直します。複数行なら、その場でApplyへ進まず、重複や条件の不足を調べます。

  1. 1提案カードのSQLを開き、表名と WHERE id = 1 AND status = 'unpaid' に相当する条件を読む。
  2. 2Dry Runの影響件数が、先ほど見た対象件数と一致するか確認する。
  3. 3練習用の接続先であることを確認し、Applyの確認画面へ進む。適用後の取り消しボタンはありません。
  4. 4適用後に再び読み取り、目的の列だけが変わったかを確かめる。

Dry Runはという名前でも、SQLを読むだけの処理ではありません。実装は内で変更を動かし、最後に取り消します。大きな表では処理負荷や待ち時間が発生します。PostgreSQLの連番払い出しのように、取り消しても番号が戻らないものもあるため、「何を試しても完全に無影響」という意味にはしないでください。試行と適用の実装・連番と取り消しの公式説明

配布アプリの読み取り制限と、SQL教材を確認した

2026年10月6日、Apple M2 UltraのMac、macOS 27.0、一時的に用意したPostgreSQL 18.6で確認しました。対象は署名を確認したPostquel v0.1.1の配布アプリです。AIを呼び出す代わりに、アプリのMCP機能へ直接8件の要求を送りました。その後、仕様どおりの変更概要を添えた提案と、未適用状態の読み取りを追加で2件確認しています。

確認した動作観測した結果
表の一覧と列の確認invoicesと4列、制約を取得
状態別の集計未入金3件38,000円など、教材の初期値と一致
読み取りツールへUPDATEを渡す読み取り専用のため拒否
id=1の変更案を提示約1行という推定を返し、状態はunpaidのまま
存在しない列、複数のSQL文いずれもエラー

別に、自作の dry-run.sql と apply.sql をPostgreSQLのコマンドから実行しました。前者は1行を更新してから取り消し、id=1 が unpaid のまま戻ることを確認。後者は1行の変更を確定し、paid になりました。これは画面のDry Run・Applyボタンの動作試験ではありません。 画面側の仕組みは固定版のコードで確認しています。

この小試験から分かるのは、試した読み取り経路と教材の動作です。AIが日本語の依頼を正確に解釈するか、実際の業務データで正しいSQLを生成するかは未検証です。また、表の説明に返った推定件数は0でしたが、実データは6行ありました。推定の表示と、SQLで数えた件数を混同しないことも確認できました。

Macで動くアプリでも、AIに渡る情報は別に考える

データベースへ接続するアプリが手元にあることと、質問内容をすべて手元で推論することは違います。Postquelはログイン済みの外部AI用CLIを呼び出します。選んだサービスのデータ取り扱いや組織の契約条件を確認して使う必要があります。

v0.1.1のコードでは、質問に加え、いま開いている表名と絞り込み条件、またはSQL編集画面の先頭4,000文字までを文脈として渡します。さらに、AIがツールで調べた列名、表の説明、制約、問い合わせ結果の行などが、AIの応答を作る材料になります。文脈を作るコード

業務で試すときは、外部AIへ渡してよい列だけを含む練習用の表を作る、必要な範囲へ権限を絞る、個人情報を架空値へ置き換える、といった準備が役立ちます。「秘密情報を出さないで」と文章で頼むだけで、閲覧権限まで狭くなるわけではありません。

ローカルの分析環境を選ぶ段階なら、DuckDB・SQLite・Postgresの使い分けも合わせて確認できます。

よくある質問

Postquelを入れれば、AIも無料で使えますか?
PostquelはMITライセンスで公開されていますが、AI機能はログイン済みのClaude Code、Codex、Cursor Agentを使います。契約したサービスの利用枠や料金は別です。Postquelの配布条件だけで、AIの無料利用を判断することはできません。
AIが勝手に本番データを書き換えませんか?
v0.1.1のAI用ツールは読み取りと変更案の提示を分け、提案の適用は利用者が行う構成です。ただし、アプリには通常の編集機能もあります。最初は架空データと読み取り権限で確認し、本番の権限や運用ルールまでアプリ任せにしないことが大切です。
Dry Runで問題がなければ、そのまま本番へ適用できますか?
試行で分かるのは、その時点での実行結果です。業務条件が正しいか、ほかの人の更新と衝突しないか、試行後に対象が変わっていないかは別に確認します。SQLを実行してから取り消すため、負荷や連番への影響も含め、最初は隔離した練習環境で試してください。
シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp