如何获取梧桐云原生分析型数据库的表结构

1、背景

      在SQL数据库中,我们经常需要查询表的结构信息,包括表的字段名称、数据类型和约束等。通过查询表结构,我们可以深入了解表的设计和使用规则,为数据操作提供基础支持,当我们需要进行数据迁移、数据分析或系统维护时,了解表的表结构可以帮助我们更好进行相关操作。梧桐云原生分析型数据库没有提供查询表结构的系统视图,所以需要我们封装函数满足需求。

2、获取数据库表结构

2.1 函数封装

函数名称:show_createtable
入参

参数名称 描述 样例
srctable 模式名.表名。 table_schema.table_name

返回值:成功直接打印出表结构,失败报出错误信息。

2.2 底层实现

create or replace function show_createtable (IN srctable text)
returns text language plpgsql as
$$
declare
V_SNAME TEXT := ‘’;
V_TNAME TEXT := ‘’;
… …
BEGIN
… …
– 获取字段及字段类型,以及字段的COMMENT,DEFAULT,NOT NULL
FOR V_COLUMNSTR_VIEW01 IN (
SELECT
a.attname,
pg_catalog.format_type(a.atttypid, a.atttypmod) as type,
a.attnotnull,
d.description,
pg_get_expr(ad.adbin, ad.adrelid)::information_schema.character_data as column_default
from
pg_catalog.pg_attribute a
inner join pg_catalog.pg_class_internal c on a.attrelid = c.oid
left join pg_description d on c.oid = d.objoid
and a.attnum = d.objsubid
left join pg_attrdef ad on c.oid = ad.adrelid
and a.attnum = ad.adnum
where
a.attnum > 0
and not a.attisdropped
and c.oid = V_OID1
order by
a.attnum
) LOOP IF V_COUNTER = 0 THEN V_COLUMNSTR := V_COLUMNSTR || ’ “’ || V_COLUMNSTR_VIEW01.attname || E’” ’ || V_COLUMNSTR_VIEW01.type;
ELSE V_COLUMNSTR := V_COLUMNSTR || E’,\n “’ || V_COLUMNST

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值