代码片段
代码片段是可重复使用的 SQL 或原生查询片段。任何有权访问 SQL 编辑器的用户都可以创建和编辑代码片段,这些片段随后可供所有 SQL 作者使用。
例如,如果您经常执行涉及多个表的查询,您可以将连接这些表的 SQL 代码保存为代码片段,以便您(和您组织中的其他人)可以在多个问题中重用该代码。
如何创建代码片段
这是一个使用 Metabase 附带的 示例数据库的简单连接查询。
SELECT
*
FROM
orders AS o
LEFT JOIN products AS p ON o.product_id = p.id
让我们将 FROM 之后的所有内容保存为代码片段,以便在其他查询中重用。
在 SQL 编辑器中
-
突出显示您要保存的 SQL 片段。在此示例中,我们将选择以下 SQL 代码
orders AS o LEFT JOIN products AS p ON o.product_id = p.id
- 右键单击突出显示的部分。
- 选择另存为代码片段以创建代码片段。将弹出一个包含您突出显示的 SQL 语句的模态框。
- 编辑、命名和描述您的代码片段。代码片段名称必须是唯一的。单击保存按钮创建代码片段。
在此示例中,我们将代码片段命名为“订单与产品”。现在任何人都可以使用该代码片段。以下是代码片段在 SQL 编辑器中的显示效果
SELECT
*
FROM
{{snippet: Orders and products}}
在 SQL 编辑器中编写时,您现在可以开始输入 {{snippet:}}
,Metabase 将显示可用代码片段的自动完成选项。
注意:如果您在代码片段中使用别名,您也需要在代码片段之外遵守这些别名。例如,如果代码片段将 products AS p
别名为 p
,那么代码片段之外的代码将需要使用别名 p
来引用该表中的列(例如 p.column_name
)。
代码片段菜单
SQL 编辑器 侧边栏有一个 代码片段菜单,用于列出可用和已归档的代码片段。
单击 SQL 编辑器右侧的代码片段图标,位于数据参考书本图标和变量 χ 图标下方。Metabase 将滑出一个侧边栏菜单,其中列出了可用代码片段。
从代码片段菜单中,您可以
- 创建代码片段。单击代码片段侧边栏右上角的
+
以创建新的代码片段。 - 预览代码片段。单击代码片段右侧的向下箭头,查看其描述和 SQL 代码预览。还有编辑代码片段的选项。
- 插入代码片段。单击代码片段的名称,将其插入到光标当前位置的查询中。
- 搜索代码片段。如果您保存了超过 15 个代码片段,一个 搜索图标(经典的放大镜)将出现在
+
按钮的左侧。请注意,搜索结果仅包含用户有权限的代码片段。代码片段文件夹不会填充搜索结果。 - 编辑代码片段。您可以更改代码片段的名称、描述和代码。
- 归档和取消归档代码片段。在编辑模态框中,您可以归档代码片段,这将从代码片段菜单和 SQL 编辑器中的自动完成选项中移除该代码片段。
编辑代码片段
您可以通过在 SQL 编辑器中的“代码片段”侧边栏菜单中选择代码片段,随时编辑代码片段。单击代码片段右侧的向下箭头,然后单击编辑。您可以更改 SQL 代码、代码片段名称和代码片段描述。
编辑代码片段是同时对多个问题进行更改的好方法。例如,如果您已将从表 X、Y 和 Z 中提取用户数据的 SQL 代码保存为代码片段 User Data
,但需要更改提取数据的方式(例如添加来自其他列或表的数据),您可以更新代码片段中的 SQL 代码,并且所有使用代码片段 User Data
的问题都将拥有更新后的代码。
编辑代码片段的名称。更改代码片段的名称将更新使用该代码片段的每个问题中的代码片段名称。这不会破坏任何现有问题(底层 SQL 保持不变),但请注意,其他用户可能会措手不及地发现您将他们经常使用的代码片段从“订单与产品”重命名为“所有内容”或其他任何名称。
编辑代码片段的 SQL。在这里,我们必须提醒您,能力越大,责任越大。编辑代码片段时有一个主要注意事项,值得特别指出
注意:如果您编辑代码片段并包含损坏的代码,您将破坏使用该代码片段的每个问题。请务必在保存到现有代码片段之前测试您的代码。
归档代码片段
归档代码片段有助于将过时或不相关的代码片段移开。当您归档代码片段时,该代码片段将不再在代码片段自动完成下拉菜单中填充,并且该代码片段将不再显示在 SQL 编辑器侧边栏中的代码片段主列表中。
归档代码片段不会影响任何使用该代码片段的现有查询,因此您可以安全地归档代码片段,而不会影响任何问题。
您可以通过单击侧边栏左下角的归档按钮,从代码片段侧边栏菜单中访问已归档的代码片段。
虽然没有删除代码片段的方法,但您可以随时归档和取消归档代码片段。
注意:两个代码片段不能共享相同的名称,因为即使代码片段已归档,该代码片段仍可能在问题中处于活动状态。
代码片段权限
任何对您至少一个已连接数据库具有 SQL 编辑器权限的用户都将能够查看代码片段侧边栏,并能够创建、编辑以及归档或取消归档任何和所有代码片段——即使是那些旨在与用户缺乏 SQL 编辑访问权限的数据库一起使用的代码片段。
某些计划包含将代码片段组织到文件夹并设置这些文件夹权限的附加功能。请参阅我们的关于代码片段文件夹和权限的文档。
了解更多
- 代码片段
- 代码片段 vs 已保存问题 vs 视图.
- 如果您在 SQL 查询中遇到问题,请参阅SQL 故障排除指南。
阅读其他 Metabase 版本的文档。