MySQL 任務¶
這頁能幫你做什麼¶
MySQL 任務讓你在工作流程 (Workflow) 的某個步驟,直接對 MySQL 資料庫下 SQL 指令,把查到的資料帶進後續步驟使用。常見情境:
- 依使用者輸入查訂單、客戶、庫存或產品資料。
- 撈出資料庫裡的事實資訊,餵給後面的大型語言模型 (LLM) 當依據,讓回答有所本。
- 依工作流程的處理結果更新資料表(如更新訂單狀態)或新增一筆記錄。
開始前
這個任務需要一個 MySQL 類型的連結器 (Connector),裡面存放資料庫的連線資訊(主機、帳號、密碼等)。請先到 連結器資源頁 建立好,再回到這裡選用。連線敏感資訊集中放在連結器裡較安全,不要寫在 SQL 裡。若你打開「連結器」對話框時清單是空的,代表還沒有任何 MySQL 連結器,需先建立一個(需相應權限)才能繼續。
操作步驟¶
-
在工作流程編輯器中新增一個 MySQL 任務節點,點選它開啟右側設定表單(如何新增請見 任務使用指南)。

-
在「名稱」填一個好辨識的步驟名稱。
-
在「連結器」欄位選擇前面建好的 MySQL 連結器。這個欄位是一個下拉選單()+右側一顆鉛筆鈕():
- 點欄位本體只會展開一般下拉清單,直接選也可以。
- 點鉛筆鈕會開啟資源選擇對話框(含搜尋框、 重新載入、 新增,以及只列出 MySQL 類型連結器的清單)。在清單點選要用的連結器後,必須按右上角的「儲存」才會套用;按「取消」或直接關掉對話框都不會生效。選取時請點該列「名稱」以外的任一格(或列前面的圓鈕)——點「名稱」會在新分頁開啟該連結器的詳細頁,不會選取它(見資源挑選欄位)。

-
在「資料庫」填要查詢的資料庫名稱。
- 在「SQL 查詢」編輯器寫下 SQL 指令,需要動態帶值的地方用佔位符(見下方說明)。
- 若 SQL 有佔位符,在「SQL 參數」填入對應的值。預設是一張「名稱/值」表格(按 新增列),適合具名佔位符
%(param_name)s;若用的是位置佔位符%s,要先打開這個欄位的「JSON」開關改成 JSON 編輯器,才能填陣列(見下方說明)。 - 設定「下一個狀態」,視需要填「附註」。
- 用表單上方的「測試任務」按鈕()試跑,確認回傳的資料符合預期。
完整欄位說明¶
下表只列 MySQL 任務特有的欄位。名稱、附註、下一個狀態、輸入與輸出、錯誤處理等所有任務共用的分區,請見 任務通用設定。MySQL 任務的設定分頁底部只有「執行設定」一個摺疊區塊,沒有「進階任務設定」,不用去找。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 連結器 | 是 | 無 | 選擇要連線的 MySQL 連結器資源。欄位是下拉選單+右側鉛筆鈕,點鉛筆會開啟資源選擇對話框(含搜尋框、清單、 重新載入、 新增,以及「取消/儲存」兩顆按鈕),只會列出 MySQL 類型的連結器;選完要按「儲存」。連線資訊由連結器提供,不在此重填。此欄位支援 JSONPath 動態輸入開關,可切換成從工作流程輸入動態帶入連結器。建立方式見 連結器資源頁。 |
| 資料庫 | 是 | 無 | 要對哪一個資料庫執行查詢,填資料庫名稱(如 customers_db)。可改用工作流程輸入動態帶入。 |
| SQL 查詢 | 是 | 無 | 要執行的 SQL 指令,支援 SELECT、INSERT、UPDATE、DELETE。是一個內嵌在表單裡的程式碼編輯器(附自動換行、複製、下載、在對話方塊中編輯等工具鈕)。需要動態帶值的地方請用佔位符,不要直接把變數串進字串(避免 SQL Injection)。支援兩種佔位符寫法(見下方說明)。 |
| SQL 參數 | 否 | 空表格 | 對應 SQL 查詢中佔位符的實際值,是常駐在設定分頁上的一張「名稱/值」表格(按 新增列),非摺疊區。把滑鼠移到這個欄位上,標籤右側會出現「JSON」與「JSONPath」開關;打開「JSON」可改用 JSON 編輯器直接填整包物件或陣列。寫法須與佔位符對應(見下方說明)。 |
SQL 佔位符與參數寫法¶
SQL 查詢支援兩種佔位符,「SQL 參數」的格式必須與你採用的佔位符一致:
- 具名佔位符
%(param_name)s(建議,最好填):參數值要用「物件(字典)」,依名稱對應,例如查詢... WHERE id = %(user_id)s搭配參數{ "user_id": 123 }。這正好對應畫面預設的「名稱/值」表格——一列填一個參數,「名稱」填user_id、「值」填123。 - 位置佔位符
%s:參數值要用「陣列(列表)」,依 SQL 中的出現順序對應,例如查詢... WHERE id = %s AND status = %s搭配參數[123, "active"]。陣列沒辦法用「名稱/值」表格表達,所以要先把滑鼠移到「SQL 參數」欄位上、打開右側的「JSON」開關,欄位會變成 JSON 編輯器,再把[123, "active"]貼進去。
參數值可以是寫死的固定值,也可以從工作流程輸入動態帶入。要動態帶入時,打開「SQL 參數」的「JSON」開關、用 { "user_id.$": "$.user_id" } 這種寫法——鍵名結尾要加 .$,平台才知道右邊那串是路徑而不是一段字面文字(這條規則與常見錯誤見 變數與資料引用,路徑寫法見 JSONPath 語法)。
不確定要用哪一種?用具名佔位符
值是固定值時,具名佔位符可以直接用畫面預設的「名稱/值」表格逐列填完,完全不必碰 JSON 模式,也不怕順序填錯,對第一次設定的人最好上手。
務必用參數,不要字串串接
安全寫法:SQL 寫 WHERE id = %(user_id)s,值交給「SQL 參數」帶入。 危險寫法:把使用者輸入直接拼進 SQL 字串(容易遭受 SQL Injection 攻擊)。
實際範例與預期結果¶
設定內容(採用具名佔位符):
- 連結器:選一個 MySQL 連結器
- 資料庫:
customers_db - SQL 查詢:
SELECT id, name, email FROM users WHERE id = %(user_id)s AND status = %(status)s -
SQL 參數:因為
user_id的值要從工作流程輸入動態帶入,這裡打開「JSON」開關寫成一包 JSON:{ "user_id.$": "$.user_id", "status": "active" }鍵名結尾的
.$代表「這個值是一條路徑」(規則見 變數與資料引用)。若兩個值都是寫死的固定值,用畫面預設的「名稱/值」表格逐列填就好,不必切到 JSON。若改用位置佔位符%s,SQL 要寫成... WHERE id = %s AND status = %s,同樣打開「JSON」開關、改填陣列["$.user_id", "active"]。
工作流程輸入:
{
"user_id": 12345
}
SELECT 查詢的測試輸出:
{
"errors": null,
"action_type": "mysql_action",
"rows": [
{
"id": 12345,
"name": "Alice Chen",
"email": "alice@example.com"
}
],
"num_affected_rows": 1
}
UPDATE/INSERT 等不回傳資料列的指令,rows 會是空陣列,num_affected_rows 為受影響的列數:
{
"errors": null,
"action_type": "mysql_action",
"rows": [],
"num_affected_rows": 1
}
Note
輸出欄位以後端實際回傳為準:rows 為查詢回傳的資料列陣列,num_affected_rows 為受影響的列數,action_type 固定為 mysql_action。在後續步驟可用 JSONPath 取值,例如 $.rows[0].email。
下一步¶
- 用 程式碼 (Code) 任務 重組查詢結果,再交給下游步驟。
- 把查到的資料餵給 LLM 任務 或 Structured LLM 任務,產生有資料依據的回答。
- 回到 任務通用設定 了解輸入與輸出、錯誤處理等共用分區。