news 2026/9/11 6:16:57

ToolJet 数据库表操作完全指南:搜索、重命名、列管理、Schema 导出与删除

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ToolJet 数据库表操作完全指南:搜索、重命名、列管理、Schema 导出与删除

ToolJet 数据库表操作完全指南:搜索、重命名、列管理、Schema 导出与删除

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

ToolJet Database(ToolJet 内置数据库)为应用开发提供了零配置、开箱即用的数据管理能力,其中表(Table)操作是日常开发中使用频率最高的环节。本文基于 table-operations.md 文档,结合 数据库编辑器、数据类型、主键、外键 文档以及前端源码实现,系统讲解表的搜索、重命名、新增/编辑/删除列、Schema 导出与整表删除等全部操作,并给出数据类型的约束细节与源码级佐证。读完本文,你将能熟练通过 Database Editor 完成表的全生命周期管理。

搜索表(Search Table)

当数据库中的表数量较多时,可以通过搜索快速定位目标表:

  1. 点击 Database Editor 顶部的Search按钮,打开搜索栏;
  2. 输入表名称,即可在左侧表列表中实时过滤匹配的表。

所有表在左侧边栏按字典序(lexicographically)排列,搜索功能在此基础上按名称精确匹配。若需要更大的编辑空间,侧边栏可以折叠收起,相关交互见 数据库编辑器。

重命名表(Rename Table)

重命名表的操作路径位于表名右侧的 kebab 菜单(三个点的更多菜单):

  1. 点击表名右侧的 kebab 菜单图标;
  2. 选择Edit table选项;
  3. 右侧将打开一个抽屉(drawer),在其中修改表名并保存。

从源码结构看,前端通过 TableForm.jsx 调用tooljetDatabaseService.renameTable()接口完成重命名,重命名成功后 TableList/index.jsx 会同步更新本地表列表状态,保证 UI 与数据库一致。kebab 菜单中的Edit tableAdd new columnExport schema等入口统一由 ActionsPopover/index.jsx 渲染。

新增列(Add New Column)

向已有表添加新列有两种入口:

  • 点击表名右侧 kebab 菜单中的Add new column
  • 直接点击表头末尾的+按钮。

随后右侧会打开抽屉,需要填写以下字段:

字段说明
Column Name新列的名称,必须唯一,作为该列的标识键(key identifier)
Data Type从下拉列表中选择合适的数据类型,可选类型见下文“支持的数据类型”
Default Value为新列指定默认值,可留空。注意:当表中已存在数据行,且新列(或既有列)应用了 NOT NULL 约束时,必须提供默认值,否则无法通过约束校验
Foreign Key Relation打开开关即可为列添加外键关系,随后可选择要引用的目标表与目标列

支持的数据类型

ToolJet 数据库内置以下数据类型(详见>数据类型描述示例serial生成整数序列,常用于表的主键。新建表时会自动创建一列id(serial 类型)作为主键1, 2, 3, 4, 5…varchar存储不定长度的字符任意字符串int存储不带小数部分的整数-2147483648 ~ 2147483647bigint存储更大的整数-9223372036854775808 ~ 9223372036854775807float存储不精确、可变精度的数值3.14boolean存储 true、false 与 nulltrue/falsedate with time以 ISO 8601 格式存储日期与时间,默认时区为设备时区(可指定其他时区),数据统一以 UTC 存储、按指定时区展示'2024-07-22 15:30:00'jsonb存储 JSON 数据,可包含数组或嵌套对象{"name": "John Doe", "skills": ["JavaScript", "Python"], "address": {"city": "New York"}}

各数据类型的允许约束

数据类型主键外键唯一非空
serial
varchar
int
bigint
float
boolean
date with time
jsonb

由此可知:booleandate with timejsonb类型只能应用Not Null约束,不能作为主键或外键;而serial类型不能作为外键列。详细的约束定义见 数据库编辑器 - 列约束 与 主键、外键 文档。

导出表 Schema(Export Schema)

Export schema功能允许将选中表的**表结构(schema)**以 JSON 文件形式下载。需要特别注意的是:

  • 该功能只导出表结构,不包含表数据与表间关系(relationships)
  • 在导出应用时,你可以选择「带表 schema」或「不带表 schema」导出。

操作方式:点击表名右侧的三个竖点图标 → 选择Export→ 浏览器将自动下载一个包含表 schema 的 JSON 文件。

从源码实现看,导出由 TableListItem/index.jsx 中的handleExportTable完成:它调用appsService.exportResource()并传入{ tooljet_database: [{ table_id }], organization_id },成功后按表名-export-时间戳.json的文件名生成 Blob 并模拟点击触发下载。若导出失败,会弹出Could not export table.的错误提示。这也是 ToolJet 通过「导出资源」机制实现应用/数据迁移的基础能力之一。

删除表(Delete Table)

删除整张表的操作:

  1. 点击表名右侧的三个竖点图标;
  2. 选择Delete选项;
  3. 在确认弹窗中点击Delete按钮,完成删除。

对应前端实现中,TableListItem/index.jsx 的handleDeleteTable会先用confirm()弹出确认框,确认后调用tooljetDatabaseService.deleteTable(organizationId, tableName)删除;删除成功会提示Table "xxx" deleted successfully并触发回调刷新表列表,失败则展示对应错误信息。删除表属于破坏性操作,确认框的设计即为防止误删——建议删除前先通过 Export schema 备份表结构。

编辑列(Edit Column)

修改列属性(如列名、默认值、约束等)时:

  1. 点击列名上的 kebab 菜单;
  2. 选择Edit column选项,打开编辑抽屉。

关键限制:编辑列时无法更改其数据类型(data type)。这是因为数据类型决定底层存储格式与索引,中途变更会破坏既有数据的有效性。若确实需要更换类型,通常的做法是新增一个目标类型的列、迁移数据,再删除旧列。

编辑列的约束能力(如 Primary Key、Unique、Not Null、Foreign Key)与建表时一致,具体说明见 数据库编辑器 - 列约束。

删除列(Delete Column)

删除列的操作:

  1. 点击列名上的 kebab 菜单;
  2. 选择Delete选项。

重要限制:用作主键的列不能直接删除。必须先移除该列的主键约束(即先在 Edit Table 面板中将主键切换/指定到其他列),然后才能删除原主键列。完整流程参考 主键 - 删除主键:编辑表 → 指定新主键列 → 取消原主键列上的 Primary 勾选 → 再删除该列。

类似地,若某个列正被其他表作为外键引用(作为目标表被引用的列),同样无法直接删除,需要先处理引用关系,以保证数据完整性与引用完整性(referential integrity),详见 外键。

操作背后的约束体系

以上所有表操作都建立在 ToolJet 数据库的约束体系之上,理解这些约束可以避免操作报错:

  • Primary Key(主键):保证指定列值唯一且非空,用于唯一标识每条记录。支持单列主键与多列组合主键(composite primary key);每个表必须至少有一个主键,且主键列不能是 boolean 类型;
  • Foreign Key(外键):建立源表与目标表之间的引用关系,确保源表外键列的值必须存在于目标表被引用列(目标列需有 Unique 约束);不允许自引用(源表 ≠ 目标表),源表外键列不能是 serial 类型(int 类型例外,可引用目标表的 serial 列);
  • Unique(唯一):保证列值在表内不重复,但允许 null 值;
  • Not Null(非空):要求每行都必须有值,不允许 null。

新增列时若同时勾选 Not Null 且表中已有数据,就必须填写默认值,正是这些约束在底层校验的结果。

小结

本文覆盖了 ToolJet Database 的全部核心表操作:搜索、重命名、新增列、编辑列、删除列、导出 schema 与删除表,并补充了数据类型、约束规则与前端源码实现细节。掌握这些操作,配合 SQL 编辑器 与 数据库编辑器 中的行数据增删改、筛选排序、批量上传能力,即可在 ToolJet 中完成从建表到数据维护的完整闭环。

【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 🚀项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/11 6:15:34

SSM框架核心技术解析与Java企业级开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/11 6:13:29

国产宇航级SSD技术突破与应用实践

1. 航天存储的特殊性与挑战航天器存储系统需要面对极端环境考验,包括但不限于:宇宙射线辐射:地球轨道上的辐射强度是地面的100-1000倍温度剧烈变化:向阳面与背阴面温差可达150℃机械振动:发射阶段承受10-15G的振动加速…

作者头像 李华
网站建设 2026/9/11 6:09:52

大模型Prompt工程实战:从调试到对齐监控

我注意到输入内容中存在严重问题:标题“GPT-6 Astra 的使用焚诀”及所附热搜词、网络热词中, GPT-6 Astra 并非真实存在的公开模型 ——OpenAI 官方从未发布、命名或确认过 “GPT-6” 或 “Astra” 这一组合型号;截至2024年第三季度&#x…

作者头像 李华