本文将帮助你快速上手扣子编程内置的数据库服务,包括数据库服务的基础介绍,以及在 AI 编程项目中开通数据库、使用数据库等指引。
扣子编程内置的数据库服务是专为 AI 编程项目设计的结构化数据托管方案,基于 PostgreSQL 引擎提供开箱即用的数据库能力,无需关注底层部署与运维工作。
在开发 AI 编程项目过程中,你可以通过自然语言与扣子 AI 对话,让其为你开发的 AI 编程项目开通数据库功能,也可以在可视化界面中手动配置。开通后,扣子 AI 会自动创建并连接到对应的 PostgreSQL 数据库,你可以在扣子编程的 AI 编程环境中直接操作数据库。
核心功能特性如下:
扣子编程提供两类独立的数据库环境:开发数据库和生产数据库。两者采用完全相同的 PostgreSQL 数据库引擎,以确保环境一致性,但它们在物理上是完全隔离的,各自拥有独立的数据、表结构和配置。
|
环境类型 |
开发数据库 |
生产数据库 |
|---|---|---|
| 适用阶段 | AI 编程项目开发/调试阶段 | AI 编程项目部署上线后 |
|
说明 |
开发阶段仅创建开发环境数据库。 |
生产环境数据库在首次部署项目时,基于开发环境表结构自动创建,部署前无法手动开通数据库。
|
扣子编程的 PostgreSQL 数据库支持如下数据类型。
|
数据类型 |
说明 |
|---|---|
| int2 | 小整数类型,占用 2 字节。 |
| int4 | 标准整数类型,占用 4 字节。 |
| int8 | 大整数类型,占用 8 字节。 |
| float4 | 单精度浮点数,占用 4 字节,精度约 6-7 位有效数字。 |
| float8 | 双精度浮点数,占用 8 字节,精度约 15-17 位有效数字。 |
| numeric | 任意精度的定点数,可自定义精度。 |
| json | JSON 格式文本。 |
| jsonb | 将 JSON 数据解析为二进制格式存储。 |
| text | 无长度限制的文本类型。 |
| varchar | 可指定最大长度的文本,例如 varchar(255)。超出长度会报错,未指定长度时等效于 text。 |
| uuid | 通用的唯一标识符。 |
| date | 日期类型,无时间部分。 |
| time | 时间类型,无日期部分,不包含时区信息。 |
| timetz | 时间类型,无日期部分,包含时区信息。 |
| timestamp | 时间戳。 |
| timestamptz | 包含时区的时间戳。 |
| bool | 布尔类型。 |
| bytea | 二进制类型。 |
|
vector |
标准稠密向量。 仅在知识库场景中使用。在数据库的 Knowledge Schema 下, |
每个项目均只提供一个开发环境数据库和一个生产环境数据库。
你在开发 AI 编程项目时,可以与扣子 AI 对话为项目接入数据库能力。
开发一个英语单词学习智能体,并为 Agent 添加一个数据库,用于存储已学习的单词

创建产品表,包含产品ID、名称、价格和库存字段
帮我插入一条新的产品记录,名称是“智能耳机”,价格是 799
为项目接入数据库能力后,你也可以像操作电子表格一样管理表数据,避免 SQL 语法错误。

如果你熟悉 SQL 语句,可直接在 SQL 编辑器中输入 SQL 语句进行操作。
CREATE TABLE users (
-- 1. 自增主键:唯一标识用户,BIGINT 适配海量用户场景
user_id BIGSERIAL PRIMARY KEY,
-- 2. 用户名:非空,唯一,VARCHAR(50) 限定长度
username VARCHAR(50) NOT NULL UNIQUE,
-- 3. 密码:非空,建议实际存储加密后的密文,VARCHAR(255) 适配加密串长度
password VARCHAR(255) NOT NULL,
-- 4. 手机号:唯一,可选填,用于登录/验证
phone VARCHAR(20) UNIQUE,
-- 5. 邮箱:唯一,可选填,用于登录/找回密码
email VARCHAR(100) UNIQUE,
-- 6. 用户状态:小整数,1-正常,0-禁用,默认正常
status SMALLINT DEFAULT 1 CHECK (status IN (0, 1)),
-- 7. 创建时间:自动记录用户注册时间,带时区
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
-- 8. 更新时间:自动记录信息修改时间,带时区
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
扣子编程的数据库服务提供备份与恢复机制,确保数据安全。你可以按需设置可追溯时间,在恢复数据库时,选择恢复到可追溯时间范围内的数据库。


下述表格罗列了数据库的相关操作。
|
分类 |
操作 |
说明 |
图例 |
|---|---|---|---|
| 管理数据表 | 创建表 | 在 AI 编程环境的数据库 > 表管理页签中,你可以单击新建表,新建一张数据表。 | ![]() |
|
编辑表 |
在 AI 编程环境的数据库 > 表管理页签中,你可以选择目标数据表对应的··· > 编辑表,编辑表结构。 |
|
|
|
删除表 |
在 AI 编程环境的数据库 > 表管理页签中,你可以选择目标数据表对应的··· > 删除表,删除表。删除时支持选择级联删除表。 注意 删除后不可恢复,请谨慎操作。 |
|
|
|
复制表 |
在 AI 编程环境的数据库 > 表管理页签中,你可以选择目标数据表对应的··· > 复制表,复制数据表。 复制时,可以选择仅复制表结构,也可以勾选复制表数据,同步复制表数据。 如果已存在同名数据表,将复制失败。 |
|
|
|
复制表模式 |
在 AI 编程环境的数据库 > 表管理页签中,你可以选择目标数据表对应的··· > 复制表模式,复制数据表的 Schema 数据到剪贴板。 |
|
|
|
导出表数据 |
在 AI 编程环境的数据库 > 表管理页签中,你可以选择目标数据表对应的··· > 导出表数据,将表数据以 CSV 格式或 SQL 格式导出到本地。 |
|
|
|
管理表数据 |
在 AI 编程环境数据库 > 表管理页签中,你可以选中目标数据表,在表中执行添加、删除、编辑、查询数据等操作。 |
|
|
|
查看表 Schema |
在 AI 编程环境的数据库 > 表管理页签中,你可以单击目标数据表,然后单击其右下角的 Definition,切换查看数据表的 Schema。 |
|
|
|
管理数据库 |
查看数据库配置 |
在 AI 编程环境的数据库 > 设置页签中,查看数据库存储容量、环境变量等信息。 添加数据库时,扣子编程会自动将连接凭据保存为环境变量,并使用这些凭据安全地连接到数据库服务器。 |
|
|
删除数据库 |
在 AI 编程环境的数据库 > 设置页签中,单击删除数据库,移除当前 AI 编程项目的数据库集成功能。 在此处删除数据库集成服务,不会触发代码更新,也不会影响项目的其他功能。你也可以通过与扣子 AI 对话,修改代码,删除代码中关于数据库集成服务调用的相关逻辑。 注意 删除后不可恢复,请谨慎操作。 |
|
|
|
回滚数据库 |
当你回滚 AI 编程项目时,可以选择是否回滚数据库。回滚编辑版本时,仅回滚开发环境数据库。目前,回滚部署版本时,不涉及回滚生产环境数据库。 如果勾选同时回滚数据库,系统将把数据库还原至对应版本状态,该版本之后添加的数据将丢失,包括 Schema 以及数据。 回滚数据库存在时间限制,目标版本的时间戳需处于当前数据库配置的可追溯时间范围内,否则将无法执行回滚。 |
|
|
| 管理 SQL 语句 | 保存 SQL 语句执行记录 | 系统自动保存 SQL 语句执行记录,你可以单击对应的记录,查看所有已执行 SQL 语句,支持回溯与复用。 | ![]() |
在创建数据表时,可以添加外键关系,并通过如果引用的行删除时的操作配置,来实现级联删除。即指定父表行删除时对子表关联行的处理规则,选项如下:
Cascade:从父表中删除一行时,将进行级联删除,即子表中所有相关的行也会被删除。
Restrict:从父表中删除一行时,如果子表中存在任何相关行,则删除操作将被中止。
Set NULL:当从父表中删除一行时,子表中外键列的值将被设置为 NULL。
Set default:当从父表中删除一行时,子表中外键列的值将设置为其默认值。
No action:当从父表中删除一行时,如果子表中存在任何相关行,将引发报错。