# DDL 数据源

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

Procedure: 启用 数据库工具和 SQL 插件

此功能依赖于 数据库工具和 SQL 插件，该插件默认情况下在 IntelliJ IDEA 中绑定并启用。 如果相关功能不可用，请确保您没有禁用插件。

> **Note:**
> 没有 Ultimate 订阅时，数据库工具和 SQL 的功能支持在 IntelliJ IDEA 中受限。

1. 按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置，然后选择  `插件` 。

2. 找到  数据库工具和 SQL  插件并点击   启用  。

DDL 数据源  是数据库结构的虚拟视图，基于包含数据定义语言语句（DDL 语句）的 SQL 文件。 您可以在编辑器中引用这些文件中定义的所有表、列和其他对象。 还支持图表。

DDL 数据源可用于维护数据库版本控制。 将 SQL 文件置于 VCS 系统下，并在每次数据库结构更新时重新生成它们。

创建后，DDL 数据源可在   数据库   工具窗口（  `视图 | 工具窗口 |   数据库` ）中使用。 您可以在   项目   工具窗口（  `视图 | 工具窗口 |   项目` ）中创建和管理包含语句的 SQL 文件。

![在 Database 工具窗口中的 DDL 数据源和在 Project 工具窗口中的 SQL 语句文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/ddl_data_source_and_files.png)

在 IntelliJ IDEA 中，您可以通过转储现有数据源和使用现有 SQL 文件来创建一个 DDL 数据源：

* 当您 [将现有数据源转储到 DDL 数据源](#create_ddl_data_sources_from_existing_data_sources)时，包含该 DDL 数据源的 SQL 文件的文件夹会自动附加到 数据库 工具窗口中。 如果您已经有一个用于所选数据源的 DDL 数据源，您可以选择是将 DDL 文件转储到现有的 DDL 数据源，还是创建一个新的 DDL 数据源。

* 要 [使用现有 SQL 文件创建 DDL 数据源](#create-a-ddl-data-source-from-existing-sql-files)，请将包含 SQL 文件的目录添加到您的项目中，并将它们从 项目 工具窗口拖动到 数据库 工具窗口。

使用 [file scopes](configuring-scopes-and-file-colors.html) 过滤用作 DDL 数据源的文件和文件夹。 当您将 DLL 文件转储到现有的 DDL 数据源时，被排除的文件将被忽略。

## 创建一个 DDL 数据源

Procedure: 将现有数据源导出为 DDL 数据源

1. 在   数据库   工具窗口中，右键点击要转储到 DDL 数据源作为转储文件的数据源，然后选择  `导入/导出 | 转储到 DDL 数据源` 。

若要配置 DDL 数据源的代码设置，请参阅 [配置 DDL 生成设置](#configuring-ddl-generation-settings)。

2. 在   数据源和驱动程序  对话框中，选择DDL数据源，然后点击   添加目录或 DDL 文件  。

3. 在文件浏览器中，导航到将存储数据源的 DDL 文件的目录，然后点击   打开  。

4. 点击   OK  。

[Video](https://resources.jetbrains.com.cn/help/img/idea/2026.3/create_ddl_data_sources_from_existing_data_sources.mp4)

Procedure: 从现有文件创建 DDL 数据源

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   数据源   选项卡的   数据源和驱动程序   对话框左侧窗格中，点击   添加   图标（ !["添加"图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)）并选择   DDL 数据源  。

![添加数据源按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_click_add_data_source.png)

3. 在   源   窗格中，点击   添加   按钮（ !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)），然后选择   DDL 文件  。

4. 在文件浏览器中，导航到包含 DDL 语句的 SQL 文件或文件，然后点击   打开  。

5. 点击   方言   链接，然后选择您想要用于添加的 SQL 文件的方言。

6. 应用设置并点击   OK  。

![从现有 SQL 文件创建 DDL 数据源](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_create_ddl_data_sources_from_existing_files.png)

## 与 DDL 数据源协作

Procedure: 通过作用域过滤文件和文件夹

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   源   窗格中，点击   添加   按钮（ !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)），然后选择   DDL 文件  。

3. 在文件浏览器中，导航到包含带 DDL 语句的 SQL 文件的目录，然后点击   打开  。

4. 在   源   窗格中，点击   添加   按钮（ !["添加"按钮](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg)），然后选择   文件作用域  。

5. 要使用作用域筛选器筛选文件和文件夹，请选择以下选项之一：

* 要使用现有作用域，请从菜单中选择。

* 要为当前 DDL 数据源创建特定文件组，请选择 匿名作用域 。 该作用域不会与其他作用域一起存储。

* 要编辑现有作用域或创建新作用域，请点击 编辑作用域… 。 有关作用域的更多信息，请参阅 [文件范围与文件颜色](configuring-scopes-and-file-colors.html)。

6. 应用设置并点击   OK  。

![使用作用域作为筛选器筛选文件和文件夹](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_ddl_ds_filter_sources_using_scopes.png)

如果选中了   自动同步  ，DDL 数据源会随着对应文件的更改自动刷新。 如需禁用此行为，请取消选中复选框。

Procedure: 在数据源中引用对象

您可以在 DDL 数据源中创建一个索引，该索引用于引用常规数据源中的表。 在您的代码中，此表将被正确引用，并且带有索引的表将出现在数据库树中。

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 选择您想要扩展的 DDL 数据源。

3. 点击   添加  图标( !["添加"图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.add.svg))，选择   扩展数据源  并选择您要引用的数据源。

![在数据源中引用对象](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_reference_objects_in_data_source.png)

Procedure: 为 DDL 数据源中的 SQL 文件设置方言

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 点击要修改的 DDL 数据源。

3. 在   源  选项卡上，点击   配置 SQL 方言  图标（ ![配置 SQL Dialect 图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.edit.svg)）。

![为 DDL 数据源中的 SQL 文件设置方言](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_set_a_dialect_for_sql_files_in_the_ddl_data_source.png)

Procedure: 在 DDL 数据源中创建对象

* 在   数据库   工具窗口中，右键点击 DDL 数据源节点下的项，然后导航到   新建  。 在对象列表中，选择您要创建的对象。

![在 DDL 数据源中创建对象](https://resources.jetbrains.com.cn/help/img/idea/2026.3/creating_objects_in_the_ddl_data_source.png)

## 配置 DDL 生成设置

您可以为 DDL 数据源生成的文件配置 [code settings](#settings-of-the-generation-tab)。

Procedure:

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com.cn/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com.cn/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   数据源  选项卡上，选择 DDL 数据源。

3. 点击   新建文件布局  选项卡。

### 新文件布局选项卡的设置

|  选项  |  描述  |
| --- | --- |
|    布局    |     定义存储和生成 DDL 文件的方式。        * 按架构每个对象一个文件 ：为每个对象生成单独的文件，并将其放置在以架构名称命名的文件夹中。 ![按架构每个对象一个文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_file_per_object_by_schema.png)    * 按架构和数据库每个对象一个文件 ：为每个对象生成单独的文件，并将其放置在以架构名称命名的文件夹中。 将包含架构名称的文件夹放置在包含数据库名称的文件夹中。 ![按架构和数据库每个对象一个文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_file_per_object_by_schema_and_database.png)    * 每个对象一个文件 ：为每个对象生成单独的文件并将它们放在一个目录中。 ![每个对象一个文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_file_per_object.png)    * 每个对象一个文件（按顺序） ：为每个对象生成单独的文件，并在文件名中添加数字前缀。 ![每个对象一个文件（按顺序）](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_file_per_object_with_order.png)    * 按架构和类型每个对象一个文件 ：为每个对象生成单独的文件，并将它们放置在带有类型名称的文件夹中。 将类型名称的文件夹放在架构名称的文件夹中。 ![按架构和类型每个对象一个文件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_file_per_object_by_schema_and_type.png)    |
|    根路径    |  定义 DDL 文件的目录位置。  |
|    代码样式    |  将代码风格应用于生成的 DDL 文件。  |
|    使用架构名称限定对象    |     向表名添加架构名。 当您在不同的方案中有两个或更多的同名表时，您可以限定一个表。 此选项具有以下形参：        * 自动 ：如果在不同的 schema 中有两个以上相同的表名，将自动限定表名。    * 从不 ：从不限定表名称。    * 始终 ：始终限定表名。    |
|    放置约束    |     定义了  `外键` 、  `唯一` 、  `CHECK`  和其他约束的位置。        * 列内 ：将其添加到列定义中，当约束基于单列时。 当约束基于两个或更多列时，请在所有列之后将约束放入表定义中。 ![将约束放入列中](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_place_constraints_inside_column.png)    * 表内 ：添加到表定义中，放在所有列之后。 ![将约束放置在表内](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_place_constraints_inside_table.png)    * 表后 ：在表定义之后，使用 `ALTER TABLE ADD CONSTRAINT` 。 ![将约束放置在表内](https://resources.jetbrains.com.cn/help/img/idea/2026.3/db_place_constraints_after_table.png)    |
|    重新生成数据库提供的代码    |  重新生成数据库作为源代码一部分提供的属性定义。  |
|    重新格式化生成的代码    |  使用当前代码样式配置文件重新格式化生成的代码。 此选项仅影响生成的代码，不影响直接从服务器接收的代码。  |
|    默认模式／数据库    |     为 DDL 数据源中的对象设置默认架构或数据库。 DDL 数据源有未命名的数据库和模式。 下表允许您设置默认模式名称。      ![默认模式／数据库](https://resources.jetbrains.com.cn/help/img/idea/2026.3/default_schemas_databases.png)  |

## See also

### 参考

[数据源及其元素](database-tool-window.html#icons-for-data-sources-and-their-elements) [数据源和驱动程序对话框](data-sources-and-drivers-dialog.html)

### 工具 Windows

[数据库工具窗口](database-tool-window.html)

