代码片段

SQL snippet

代码片段是可重用的 SQL 或原生查询片段。任何有SQL 编辑器权限的人都可以创建和编辑代码片段,然后所有 SQL 作者都可以使用这些代码片段。

例如,如果您经常执行涉及多个表的查询,您可以将连接这些表的 SQL 代码保存为代码片段,这样您(以及组织中的其他人)就可以在多个问题中重用该代码。

如何创建代码片段

这是一个使用 Metabase 附带的示例数据库的简单查询,带有一个连接操作。

SELECT
  *
FROM
  orders AS o
  LEFT JOIN products AS p ON o.product_id = p.id

让我们将 FROM 之后的所有内容保存为一个代码片段,以便在其他查询中重用。

SQL 编辑器

  1. 高亮显示您想要保存的 SQL 部分。在本例中,我们将选择以下 SQL 代码

    orders AS o
    LEFT JOIN products AS p ON o.product_id = p.id
    
  2. 右键单击高亮显示的部分。
  3. 选择另存为代码片段来创建一个代码片段。一个弹窗将出现,其中包含您高亮显示的 SQL 语句。
  4. 编辑、命名和描述您的代码片段。代码片段名称必须是唯一的。单击保存按钮创建代码片段。

在本例中,我们将代码片段命名为“订单和产品”。该代码片段现在可供任何人使用。以下是该代码片段在 SQL 编辑器中的样子


SELECT
  *
FROM
  {{snippet: Orders and products}}

在 SQL 编辑器中书写时,您现在可以开始输入 {{snippet:}},Metabase 将会提供可用代码片段的自动完成选项。

注意:如果您在代码片段中使用别名,您也需要在代码片段之外遵循这些别名。例如,如果一个代码片段将 products 别名为 p,则代码片段之外的代码需要使用别名 p 来引用该表中的列(如 p.column_name)。

代码片段菜单

SQL 编辑器侧边栏有一个代码片段菜单,用于列出可用和已归档的代码片段。

点击 SQL 编辑器右侧的代码片段图标,在数据参考书图标和变量 χ 图标下方。Metabase 将滑出一个侧边栏菜单,列出可用的代码片段。

在代码片段菜单中,您可以

  • 创建代码片段。点击代码片段侧边栏右上角的 + 号来创建一个新的代码片段。
  • 预览代码片段。点击代码片段右侧的向下箭头,查看其描述和 SQL 代码预览。还有一个编辑代码片段的选项。
  • 插入代码片段。点击代码片段的名称,将其插入到查询中光标当前所在的位置。
  • 搜索代码片段。如果您保存了超过 15 个代码片段,一个搜索图标(经典的放大镜)将出现在 + 按钮的左侧。请注意,搜索结果只包括用户有权限的代码片段。代码片段文件夹不会出现在搜索结果中。
  • 编辑代码片段。您可以更改代码片段的名称、描述和代码。
  • 归档和取消归档代码片段。在编辑弹窗中,您可以归档一个代码片段,这会将该代码片段从代码片段菜单和 SQL 编辑器的自动完成选项中移除。

编辑代码片段

您可以随时通过在 SQL 编辑器的代码片段侧边栏菜单中选择代码片段来编辑它。点击代码片段右侧的向下箭头,然后点击编辑。您可以更改 SQL 代码、代码片段名称和代码片段描述。

编辑代码片段是一次性修改多个问题的好方法。例如,如果您已将从表 X、Y 和 Z 中提取用户数据的 SQL 代码保存为代码片段 用户数据,但您需要更改提取数据的方式(例如通过添加另一个列或表的数据),您可以更新代码片段中的 SQL 代码,所有使用 用户数据 代码片段的问题都将获得更新后的代码。

编辑代码片段的名称。更改代码片段的名称将更新使用该代码片段的每个问题中的代码片段名称。这不会破坏任何现有的问题(底层的 SQL 保持不变),但请注意,其他用户可能会惊讶地发现您将他们经常使用的代码片段从“订单和产品”重命名为“所有东西”,或者其他什么名称。

编辑代码片段的 SQL。这里我们必须提醒您,能力越大,责任越大。在编辑代码片段时有一个主要注意事项,值得特别指出

注意:如果您编辑一个代码片段并包含错误的代码,您将破坏使用该代码片段的每个问题。在将代码保存到现有代码片段之前,请务必测试您的代码。

归档代码片段

归档代码片段可以帮助将过时或不太相关的代码片段收起来。当您归档一个代码片段时,该代码片段不再出现在代码片段自动完成下拉列表中,也不会出现在 SQL 编辑器侧边栏的主代码片段列表中。

归档代码片段不会影响任何使用该代码片段的现有查询,所以您可以安全地归档一个代码片段而不会影响任何问题。

您可以从代码片段侧边栏菜单中访问已归档的代码片段,方法是点击侧边栏左下角的已归档按钮。

虽然没有办法删除代码片段,但您可以随时归档和取消归档代码片段。

注意:两个代码片段不能共享相同的名称,因为即使一个代码片段被归档,该代码片段可能仍在问题中处于活动状态。

代码片段权限

任何对您至少一个连接的数据库拥有 SQL 编辑器权限的用户都将能够查看代码片段侧边栏,并且能够创建、编辑、归档或取消归档任何和所有代码片段——即使是那些旨在用于用户缺乏 SQL 编辑权限的数据库的代码片段。

某些套餐包含将代码片段组织到文件夹中并对这些文件夹设置权限的附加功能。请参阅我们关于代码片段文件夹和权限的文档

了解更多

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想要改进这些文档吗?提出更改建议。
© . This site is unofficial and not affiliated with Metabase, Inc.