自訂動作
撰寫 SQL 以更新資料庫中的記錄。
建立自訂動作
您必須在具有原生查詢編輯權限的群組中才能建立動作
有兩種方式可以建立自訂動作
- 按一下 + 新增 > 動作。當您儲存動作時,系統會提示您將該動作與模型建立關聯。(注意:只有在您先在 Metabase 中建立模型或有權存取模型的情況下,「動作」選項才會顯示在「+ 新增」選單中。)
- 透過模型詳細資料頁面:從模型中,按一下右上角的 資訊 按鈕。在側邊欄的右上角,按一下 模型詳細資料 > 動作 > 新增動作。
在動作編輯器中,您可以撰寫自己的程式碼來建立動作,例如撰寫一個只會更新表格中部分欄位的動作。請參閱動作範例。
動作變數的欄位類型
針對您在動作中設定的每個 {{ variable }},您都需要設定欄位類型。
這些變數欄位類型中的每一個都提供不同的選項。按一下齒輪圖示以變更選項。
如果您不需要變數,您可以選擇性地指定預設值,以便在人們未填寫欄位時讓 Metabase 使用。在 SQL 程式碼中,請記住將任何選用變數和逗號括在方括號中,例如 [[,欄位 = {{ optional_variable }}]]
。
您可以在動作表單中包含所有欄位的預留位置文字。
文字
- 文字
- 長文字
- 下拉式選單
- 內嵌選取器
數字
- 數字
- 下拉式選單
- 內嵌選取器
日期
- 日期
- 日期 + 時間
針對下拉式選單和內嵌選取器,您可以指定要在表單上呈現的選項清單,每個選項各佔一行。
外觀
動作編輯器模式中的「外觀」索引標籤會顯示變數表單元素的預覽。在下圖中,我們按一下變數的齒輪,並將變數設定為使用文字 > 下拉式清單。「外觀」區段會提供表單元素外觀的預覽
動作設定
從模型詳細資料頁面,按一下動作旁邊的 三個點選單 (…)。進入動作編輯器後,按一下齒輪圖示以顯示動作設定。
設為公開
建立動作表單的公開共用連結。任何有權存取該連結的人都可以填寫表單並執行動作。適用於建立問卷調查。
設定成功訊息
您可以在此處編輯成功訊息,這是 Metabase 在收到資料庫回覆表示一切順利後,會在快顯訊息中顯示的訊息。
如果發生錯誤,Metabase 會顯示從資料庫收到的錯誤訊息。
自訂動作範例
UPDATE
動作範例
您可以撰寫一個動作,以更新範例資料庫中 invoices
表格中記錄的 plan
欄位
UPDATE invoices
SET plan = {{ plan }}
[[, payment = {{ payment }}]]
WHERE
id = {{ id }}
上述程式碼會建立一個表單,提示人們輸入 (必要) plan
欄位的更新值,以及 (選用) payment
欄位的值,以指定 ID
的指定記錄。
方括號 [[ ]]
中的程式碼使陳述式成為選用項目:只有在有人在付款欄位中插入值時,才會執行括號括住的陳述式。請注意,分隔陳述式的逗號位於括號內。
INSERT
動作範例
Insert 陳述式非常簡單明瞭
INSERT INTO invoices (
account_id
,payment
,expected_invoice
,plan
,date_received
)
VALUES (
{{ account_id }}
,{{ payment }}
,CAST ({{expected_invoice}} AS boolean)
,{{plan}}
,({{date_received}}
);
在動作中轉換欄位值
如果您在提交表單時收到類型錯誤,您可能需要在查詢中 CAST
資料類型,使其與資料庫中目標欄位的資料類型相符。在這裡,我們將值轉換為 boolean
UPDATE invoices
SET expected_invoice = CAST({{expected_invoice}} AS boolean)
WHERE id = {{id}};
在動作中參考儲存的問題
您也可以在動作中參考儲存的問題。在這裡,我們採用儲存的問題 («潛在客戶») 上 SELECT
陳述式的結果,並將結果插入 people_to_write
表格中。
WITH prospects AS {{#6-potential-customers}}
INSERT INTO
people_to_write (
first_name
,last_name
,email
)
SELECT
first_name
,last_name
,email
FROM prospects;
延伸閱讀
閱讀其他 Metabase 版本的文件。