自定义操作
编写SQL以更新数据库中的记录。
创建自定义操作
您必须处于具有原生查询编辑访问权限的组中才能创建操作
创建自定义操作有两种方式
- 点击+ 新建 > 操作。保存您的操作时,将提示您将操作与模型关联。 (注意:如果已创建或具有访问权限的模型,则将在+ 新建菜单中显示操作选项。)
- 通过模型详细信息页面:从模型中,点击右上角的信息按钮。在侧边栏右上角,点击模型详情 > 操作 > 新建操作。
在操作编辑器中,您可以编写自己的代码来创建操作,例如编写仅更新表子集列的操作。请参阅示例操作。
操作变量的字段类型
对于在操作中设置的每个{{变量}},您需要设置字段类型。
这些变量字段类型提供不同的选项。单击齿轮图标以更改选项。
如果不需要变量,可以可选地指定默认值,以便Metabase在人们未填写字段的情况下使用。在SQL代码中,请记住将任何可选变量和逗号括在括号中,如[[, column = {{ optional_variable }}]]
。
您可以在操作表单中包含所有字段的占位符文本。
文本
- 文本
- 长文本
- 下拉菜单
- 行内选择
数字
- 数字
- 下拉菜单
- 行内选择
日期
- 日期
- 日期 + 时间
对于下拉菜单和行内选择,您可以为表单指定要显示的选项列表,每个选项占一行。
外观
操作编辑器模态中的外观选项卡将显示变量的表单元素的预览。在下面的图像中,我们已单击变量的齿轮并将变量设置为使用文本 > 下拉列表。外观部分提供了表单元素的预览
操作设置
从模型详情页,点击操作旁边的三个点菜单(…)。一旦进入操作编辑器,点击齿轮图标以打开操作设置。
公开
创建一个公开可分享的动作表单链接。任何可以访问该链接的人都可以填写表格并执行操作。适用于创建调查。
设置成功消息
在这里,您可以编辑成功消息,这是Metabase在从数据库收到一切顺利的反馈后弹出的提示中显示的消息。
如果出现问题,Metabase将显示从数据库接收到的错误消息。
示例自定义操作
示例 UPDATE
操作
您可以为Sample Database中 invoices 表的记录编写一个更新 plan
列的操作
UPDATE invoices
SET plan = {{ plan }}
[[, payment = {{ payment }}]]
WHERE
id = {{ id }}
上面的代码将创建一个表单,提示人们输入(必需的) plan
字段的更新值以及可选的针对给定记录的 payment
字段,记录由 ID
指定。
括号 [[ ]]
中的代码使声明可选:如果有人在付款字段中插入值,则括号内的声明才会运行。注意分隔声明的逗号在括号内。
示例 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版本 的文档。