IntelliJ IDEA 2025.2 Help

元数据和自省

元数据 包含有关数据库对象、结构、数据库对象源代码等的信息。 IntelliJ IDEA 使用这些信息在 数据库 工具窗口中显示对象,显示其 DDL,在代码补全时提供建议,以及用于其他编码辅助、导航和搜索功能。

在 IntelliJ IDEA 中,有两种获取数据库元数据的方法:迷你目录和 自省。

迷你目录

通过系统模式的迷你目录,系统模式的元数据已预先自省并随 IDE 一起提供。 它们允许在无需自省系统模式且无需连接数据库的情况下编写使用系统元数据的脚本。

内省

自省 是加载数据库元数据的过程。 当您执行 Introspection 时,数据源中的结构信息会被检查,以检测表、列、例程及其他具有其属性的数据库对象。

仅支持对具有数据结构和目录的数据库进行内省。

默认情况下,仅对选择在 数据库 工具窗口中显示的架构和数据库进行 Introspection。

您可以通过在 数据库 工具窗口中选择,或在 数据源和驱动程序 对话框(Shift+Enter )中编辑数据源属性,选择要进行内省并显示的模式和数据库。

选择架构和数据库以进行 Introspection

  • 在 数据库 工具窗口中:

    1. 要打开 数据库 工具窗口,请从主菜单中选择 视图(V) | 工具窗口 | 数据库。 或者按 ⌘ 1。

    2. 在 数据库 工具窗口中,点击数据源、数据库或架构名称旁边的 第 N 个,共 M 个 按钮。

      在 Database 工具窗口中选择架构或数据库
    3. 在架构选择弹出窗口中,选择数据库或架构并按下 Enter。

  • 在 数据源和驱动程序 对话框中:

    1. 要打开对话框,请在 数据库 工具窗口中右键点击数据源,然后选择 属性图标属性。 或者,点击工具栏上的 设置按钮数据源属性 图标。

    2. 在 数据源和驱动程序 对话框的 架构 选项卡中,选择数据库或架构。

      在数据源属性中选择架构或数据库

      请注意, 对象筛选器 字段仅定义在 数据库 工具窗口中可见的对象,并不会影响内省范围。

    3. 应用更改并关闭对话框。

一旦必要的数据库和架构完成 Introspection,IDE 就可以在您的脚本中将数据库对象解析到正确的上下文。 以下示例演示了已 Introspection 和未 Introspection 架构的数据库对象解析。

为已 Introspection 和未 Introspection 的架构解析数据库对象
  1. 尚未 Introspection 的 MySQL 数据源。

  2. PostgreSQL 数据源中唯一已 Introspection 的 guest 数据库。 该数据库包含四个架构,仅 public 架构已完成 Introspection。

  3. 在 查询控制台 中解析数据库对象:对于已内省的 guest 模式解析成功,而对于尚未内省的 tests 模式解析失败。

对于每个数据源,您还可以选择加载数据库对象源代码的模式类别。

加载不同模式的数据库对象源

  1. 要选择加载数据库对象源的模式,请打开 数据源和驱动程序 对话框(Shift+Enter ),然后选择一个数据源。

  2. 在 选项 选项卡中,导航到 加载来源于 设置并选择模式类别。

  3. 应用更改并关闭对话框。

选择加载数据库对象源的模式类别

如果处理所有对象,数据库用户可能会遇到较长的 Introspection 时间,而这通常不是日常工作和代码辅助所必需的。 为了减少内省对象数量,IntelliJ IDEA 为部分支持的数据库实现了额外的 内省类型 和三种 内省级别。

自省类型

内省类型定义了在内省过程中刷新哪些数据库对象。 部分数据库允许将内省范围限定为特定对象。 在 IntelliJ IDEA 中,根据您的数据库,可使用以下内省类型: 完全内省、 片段内省 和 增量内省。

完全自省

在 数据库 工具窗口(模式选择器 )或 数据源和驱动程序 对话框中的 架构 选项卡 中选择用于内省的模式和数据库后,它们将被刷新。

增量自省

仅在上一次内省后数据库中发生变化的数据库对象会被刷新。

片段自省
  • 当您执行 刷新 操作时,仅 数据库 工具窗口中选定的数据库对象会被刷新。

    当您执行刷新操作时,数据库工具窗口中选中的数据库对象将被刷新。
  • 当您在 查询控制台 中运行语句时,将应用 智能刷新 机制。 IntelliJ IDEA 分析哪些对象可能会被该语句修改,并仅刷新该特定对象集。

对于部分支持的数据库,可按 内省级别 进行内省。

按级别进行内省

内省级别定义了获取数据库对象的详细程度:

  • 级别 1:仅加载数据库对象名称。

  • 级别 2:加载除数据库对象源代码以外的所有内容。

  • 级别 3:加载所有内容。

有关自省级别的更多信息,请参阅 内省级别 主题。

数据库工具窗口中的内省级别

如果数据库不支持特定的内省类型,IntelliJ IDEA 将执行完全内省。 以下数据库支持特定的内省类型和内省级别:

数据库

增量自省

片段自省

内省级别

Azure SQL 数据库

是

是

-

Greenplum

是

-

-

MariaDB

是

是

是

Microsoft SQL 服务器

是

是

是

MySQL

是

是

是

Oracle

是

是

是

PostgreSQL

是

是

是

2025年 9月 22日