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

-
在「名稱」填一個好辨識的步驟名稱。
-
在「連結器」點開後會跳出資源選擇對話框(含搜尋框、連結器清單與「+」(新增)圖示鈕),從中選擇前面建好的 MySQL 連結器。連結器欄位也支援 JSONPath 動態輸入開關,可改由工作流程輸入帶入連結器。

-
在「資料庫」填要查詢的資料庫名稱。
- 在「SQL 查詢」編輯器寫下 SQL 指令,需要動態帶值的地方用佔位符(見下方說明)。
- 若 SQL 有佔位符,直接在「SQL 參數」鍵值表格逐列填入名稱與值(按「+」新增列)。
- 設定「下一個狀態」,視需要填「附註」。
- 用表單上方的測試按鈕()試跑,確認回傳的資料符合預期。
完整欄位說明¶
下表只列 MySQL 任務特有的欄位。名稱、附註、下一個狀態、輸入與輸出、錯誤處理、進階/執行設定等所有任務共用的分區,請見 Action 通用設定。
| 欄位 | 必填 | 預設 | 說明 |
|---|---|---|---|
| 連結器 | 是 | 無 | 選擇要連線的 MySQL 連結器資源;點開後會跳出資源選擇對話框(含搜尋框、清單與「+」(新增)圖示鈕),只會列出 MySQL 類型的連結器。連線資訊由連結器提供,不在此重填。此欄位支援 JSONPath 動態輸入開關,可切換成從工作流程輸入動態帶入連結器。建立方式見 Connector 資源頁。 |
| 資料庫 | 是 | 無 | 要對哪一個資料庫執行查詢,填資料庫名稱(如 customers_db)。可改用工作流程輸入動態帶入。 |
| SQL 查詢 | 是 | 無 | 要執行的 SQL 指令,支援 SELECT、INSERT、UPDATE、DELETE。需要動態帶值的地方請用佔位符,不要直接把變數串進字串(避免 SQL Injection)。支援兩種佔位符寫法(見下方說明)。 |
| SQL 參數 | 否 | 無 | 對應 SQL 查詢中佔位符的實際值,以常駐的鍵值表格逐列填入名稱與值(按「+」新增列),非摺疊區。寫法須與佔位符對應(見下方說明)。 |
SQL 佔位符與參數寫法¶
SQL 查詢支援兩種佔位符,「SQL 參數」的格式必須與你採用的佔位符一致:
- 位置佔位符
%s:參數值要用「陣列(列表)」,依序對應,例如查詢... WHERE id = %s AND status = %s搭配參數[123, "active"]。 - 具名佔位符
%(param_name)s:參數值要用「物件(字典)」,依名稱對應,例如查詢... WHERE id = %(user_id)s搭配參數{ "user_id": 123 }。
參數值可以是固定值,也可以用 JSONPath($. 開頭)從工作流程輸入動態帶入,例如 { "user_id": "$.user_id" }(路徑寫法見 JSONPath 語法)。
務必用參數,不要字串串接
安全寫法:WHERE id = %s 搭配參數 [123]。 危險寫法:把使用者輸入直接拼進 SQL(容易遭受 SQL Injection 攻擊)。
實際範例與預期結果¶
設定內容(採用位置佔位符):
- 連結器:選一個 MySQL 連結器
- 資料庫:
customers_db - SQL 查詢:
SELECT id, name, email FROM users WHERE id = %s AND status = %s - SQL 參數:
["$.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 任務,產生有資料依據的回答。
- 回到 Action 通用設定 了解輸入與輸出、錯誤處理等共用分區。