本文将帮助你快速上手扣子编程内置的数据库服务,包括数据库服务的基础介绍,以及在 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 |
可指定最大长度的文本,例如 |
|
uuid |
通用的唯一标识符。 |
|
date |
日期类型,无时间部分。 |
|
time |
时间类型,无日期部分,不包含时区信息。 |
|
timetz |
时间类型,无日期部分,包含时区信息。 |
|
timestamp |
时间戳。 |
|
timestamptz |
包含时区的时间戳。 |
|
bool |
布尔类型。 |
|
bytea |
二进制类型。 |
|
vector |
标准稠密向量。 |
仅 AI 编程项目的所有者具备对应数据库的操作权限。
每个项目均只提供一个开发环境数据库和一个生产环境数据库。
你在开发 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 编程项目时,可以选择是否回滚数据库。回滚编辑版本时,仅回滚开发环境数据库。目前,回滚部署版本时,不涉及回滚生产环境数据库。 |
|
|
|
管理 SQL 语句 |
保存 SQL 语句执行记录 |
系统自动保存 SQL 语句执行记录,你可以单击对应的记录,查看所有已执行 SQL 语句,支持回溯与复用。 |
|
在创建数据表时,可以添加外键关系,并通过如果引用的行删除时的操作配置,来实现级联删除。即指定父表行删除时对子表关联行的处理规则,选项如下:
Cascade:从父表中删除一行时,将进行级联删除,即子表中所有相关的行也会被删除。
Restrict:从父表中删除一行时,如果子表中存在任何相关行,则删除操作将被中止。
Set NULL:当从父表中删除一行时,子表中外键列的值将被设置为 NULL。
Set default:当从父表中删除一行时,子表中外键列的值将设置为其默认值。
No action:当从父表中删除一行时,如果子表中存在任何相关行,将引发报错。