@dbml/core

中文文档
12.0.0发布于 2026/11/09Apache-2.0TypeScriptESM + CJS近 30 天下载 76.3万

TODO: 描述

中文使用文档
文档目录9 节
  1. 安装
  2. SQL 解析器特性支持
  3. 支持图例
  4. CREATE TABLE
  5. CREATE INDEX
  6. INSERT 发言
  7. ALTER TABLE
  8. 评论
  9. DDL 其他发言

@ dbml/ 核心

参见 @ dbml/ 核心 用于完整的API参考.

安装

npm install @dbml/core

# or if you're using yarn
yarn add @dbml/core

SQL 解析器特性支持

本节在将 SQL 导入到 DBML 时记录每个支持的数据库的 SQL 解析能力 .

关于每个 SQL 解析器的更详细文档,请参见单个解析器 READMEs :

支持图例

符号含义
✓完全支持并正确解析
◐已解析的有效 SQL, 但是一些选项/ 解析被忽略
✗有效的 SQL 语法, 但解析器无法生成输出
—— 说此数据库的语法无效

CREATE TABLE

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
基本语法✓✓✓✓✓
参数化类型(例如:, VARCHAR(255)(中文(简体) )✓✓✓✓✓
阵列类型(例如, INTEGER[](中文(简体) )✓—— 说—— 说—— 说—— 说
假定类型(ENUM(中文(简体) )✓✓—— 说—— 说—— 说
临时表格◐✗✓◐◐
CREATE TABLE 身为自我✗✗✗✗✗
表格选项( E)ENGINE, (中文(简体) ), TABLESPACE页:1◐◐◐◐◐
其他列属性( E)COLLATE页:1◐✗◐◐◐
生成/计算栏◐◐◐◐◐

注释:

  • MSSQL 软件数字 :
    • 临时表格的使用 # 前缀( 本地) 和 ## 前缀( 全局)
    • 平方括号标识符( C)[identifier]) 获得支持

PRIMARY KEY

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级✓✓✓✓✓
表一级✓✓✓✓✓
多栏✓✓✓✓✓
明确名称(CONSTRAINT name(中文(简体) )✓✓✓✓✓
结集/无结集—— 说—— 说◐—— 说—— 说

FOREIGN KEY

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级( E)REFERENCES(中文(简体) )✓✓✗✓✗
表一级✓✓✓✓✗
多栏✓✓✓✓✗
明确名称(CONSTRAINT name(中文(简体) )✓✓✓✓✗
ON UPDATE 动作✓✓✓—— 说✗
ON DELETE 动作✓✓✓✓✗

注释:

  • MSSQL 软件: 列级 FOREIGN KEY 有已知的错误 - 使用表格级别语法代替
  • 雪花页:1 FOREIGN KEY 定义有已知错误, 产生未定义错误

UNIQUE

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级✓✓✓✓✓
表一级✓✓✓✓✓
多栏✓✓✓✓✓
明确名称(CONSTRAINT name(中文(简体) )✓✓◐✓◐
UNIQUE KEY编号 :UNIQUE INDEX 语法—— 说✓—— 说—— 说—— 说

CHECK

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级✓✓✓✓✗
表一级✓✓✓✓✗
明确名称(CONSTRAINT name(中文(简体) )✓✓✓✓✗

DEFAULT

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级✓✓✓✓✓
默认函数✓✓✓✓✓
明确名称(CONSTRAINT name(中文(简体) )—— 说—— 说◐—— 说◐

NOT NULL

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级 NOT NULL✓✓✓✓✓
明确栏级 NULL✓✓✓✓✓

自动递增列

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
SERIAL (比索类型)✓—— 说—— 说—— 说—— 说
BIGSERIAL (比索类型)✓—— 说—— 说—— 说—— 说
AUTO_INCREMENT (列属性)—— 说✓—— 说—— 说—— 说
IDENTITY(seed, increment) (栏下财产)—— 说—— 说✓—— 说✓
GENERATED AS IDENTITY (栏下财产)✓—— 说✗✓✗
GENERATED ALWAYS AS IDENTITY✓—— 说—— 说✓—— 说
GENERATED BY DEFAULT AS IDENTITY✓—— 说—— 说✓—— 说

内含索引

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
列级索引—— 说✗—— 说—— 说—— 说
表一级 INDEX编号 :KEY—— 说✓—— 说✓—— 说
命名索引—— 说✓—— 说✓—— 说
多列索引—— 说✓—— 说✓—— 说
正在使用BTREE/HASH—— 说✓—— 说—— 说—— 说
完全XT/半自动—— 说◐—— 说—— 说—— 说

CREATE INDEX

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
基础 CREATE INDEX✓✓✓✓—— 说
多栏索引✓✓✓✓—— 说
UNIQUE 指数✓✓✓✓—— 说
基于函数的索引✓✓—— 说✓—— 说
布莱✓✓✗—— 说—— 说
已经✓✓—— 说—— 说—— 说
(原始内容存档于2017-09-21) (英语). GIST✓—— 说—— 说—— 说—— 说
巴林✓—— 说—— 说—— 说—— 说
GIN( 黄金)✓—— 说—— 说—— 说—— 说
部分/筛选指数WHERE(中文(简体) )◐✗◐◐—— 说
全文—— 说◐✗—— 说—— 说
萨摩亚—— 说◐✗—— 说—— 说

注释:

  • MSSQL 软件: 基于函数的索引使用计算列

INSERT 发言

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
基础 INSERT ...评价✓✓✓✓✗
多行键 INSERT✓✓✓✓✓
INSERT . 感觉✗✗✗✗✗
INSERT ...带有返回行(RETURNING, (中文(简体) ), OUTPUT(中文(简体) )◐—— 说◐◐—— 说
INSERT .关于冲突/◐◐—— 说—— 说—— 说

注释:

  • 甲骨文: 多行插入使用 INSERT ALL ... SELECT * FROM dual 语法,完全支持.

ALTER TABLE

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
阿德·克卢姆✗✗✗✗✗
热带气旋✗✗✗✗✗
替代/混合✗✗✗✗✗
科特迪瓦✗✗✗✗✗
AD 制约因素
- 说吧 DEFAULT✗✗✓✓✗
- 说吧 NOT NULL✗✗✗✓✗
- 说吧 CHECK✓✓✓✓—— 说
- 说吧 UNIQUE✓✗✓✓✓
- 说吧 PRIMARY KEY✓✓✓✓✗
- 说吧 FOREIGN KEY✓✓✓✓✓
德罗普制约因素✗✗✗✗✗

评论

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
表格注释✓✓◐✓✓
栏评论✓✓◐✓✗
注释语法COMMENT ON内入 COMMENTsp_addextendedpropertyCOMMENT ON内入 COMMENT

注释:

  • MSSQL 软件: 通过 sp_addextendedproperty 有不可靠的解析

DDL 其他发言

特性邮递SQLMySQL 数据MSSQL 软件甲骨文雪花
DROP TABLE✗✗✗✗✗
DROP INDEX✗✗✗✗—— 说
ALTER INDEX✗—— 说✗✗—— 说
CREATE VIEW✗✗✗✗✗

版本与发布记录

@dbml/core 共发布 273 个版本,首次发布于 2019/08/19;过去 12 个月发布了 164 个版本。

版本发布日期距今
12.0.0latest2026/11/092 天前
11.1.02026/11/065 天前
11.0.2-metadata-ref.2alpha2026/11/065 天前
11.0.2-metadata-ref.12026/11/065 天前
11.0.2-arch.0.42026/11/056 天前
11.0.2-arch.0.32026/11/056 天前

关于 @dbml/core 的常见问题

@dbml/core 是什么?

TODO: 描述

如何安装 @dbml/core?

在项目目录运行 npm install @dbml/core,或使用 pnpm add / yarn add / bun add。

@dbml/core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dbml/core 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@dbml/core 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@dbml/core 可以商用吗?

@dbml/core 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@dbml/core 的下载量有多少?

根据 npm 官方下载统计,@dbml/core 在 2026/10/12 – 2026/11/10 这 30 天内被下载 763,308 次,日均约 25,444 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@dbml/core 还在维护吗?

最新版本 12.0.0 发布于 2026/11/09(2 天前);至今共发布 273 个版本,其中过去 12 个月发布了 164 个;首次发布于 2019/08/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。