GBase 8s
其他
问答

易用性

发表于2026-09-14 15:43:12265次浏览5个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:8s 8.8

【操作系统】:centos7.9

【CPU】:x86

【问题描述】*: 没有现成的 get_ddl,get_view,get_procedure,get_funcion等ddl 的功能,不要命令行工具

目前 GBase 8s 缺少通过 SQL 或内置函数直接获取数据库对象完整 DDL 的能力,例如:

  • 获取表 DDL
  • 获取视图 DDL
  • 获取存储过程 DDL
  • 获取函数 DDL
  • 获取索引、约束等对象 DDL

在日常数据库使用过程中,经常需要查看已有对象的完整创建语句,例如排查问题、核对表结构、复制对象、迁移对象或进行环境对比。

例如 MySQL 模式可以直接通过:

SHOW CREATE TABLE table_name;

获取完整的建表语句。

目前 GBase 8s 如果需要查看完整 DDL,使用 SQL 查询时往往需要分别查询系统表中的字段、类型、默认值、索引、主键、约束等信息,再自行整理。

对于结构较复杂的表,以及 View、Procedure、Function 等对象,查看完整定义更加不方便。

这会影响数据库日常使用和问题排查效率,尤其是在需要快速确认数据库对象实际定义时,希望能够直接通过 SQL 获取数据库当前真实、完整的 DDL。

【建议】

希望 GBase 8s 增加统一的 DDL 获取函数,例如:

get_ddl('table', 'schema_name', 'table_name');

get_ddl('view', 'schema_name', 'view_name');

get_ddl('procedure', 'schema_name', 'procedure_name');

get_ddl('function', 'schema_name', 'function_name');

或者提供类似的系统函数,通过 SQL 即可获取数据库对象完整 DDL。

由数据库直接生成 DDL,也可以保证输出结果与当前数据库版本、数据类型及语法保持一致,方便日常使用、问题排查、对象迁移和环境对比。

评论

登录后才可以发表评论
用户头像
GBase用户28017发表于 1个月前
顶一下。
最佳回答
GBase用户12345发表于 1个月前
该部分功能目前处于规划阶段,将在后续版本迭代中上线。
GBase用户51829发表于 1个月前
这个确实,如果能增加代码方式获取完整DDL,是很方便的,应该增加
用户头像
GBase用户28017发表于 1个月前
任何软件易用性是关键。
GBase用户52110发表于 26天前
确实,这个功能还是很实用的,增加易用性