GBase 8s
其他
问答

如何获取表字段的约束信息,非空,主键,唯一,默认,索引等

发表于2024-08-15 16:34:00287次浏览7个评论

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

【GBase版本】:

【操作系统】:

【CPU】:

【问题描述】*:你好,在开发过程中遇到一个问题,就是需要知道表字段的约束信息,是否是主键,唯一,非空,默认值,索引等,这个我找了文档,SYSCONSTRAINTS可以有信息,但是,给出的信息中我并不清楚是哪个字段,只有constrid的信息,这个如何处理啊,寻求帮助

评论

登录后才可以发表评论
9527发表于 1年前
用dbschema 命令导出表结构。就可以知道,语句也能看到
9527发表于 1年前
@9527:或者使用
select * from systables a,syscolumns b,sysindexes c where a.tabid=b.tabid and a.tabid=c.tabid and b.colno=c.part1 and a.tabid=101 ;

需要注意c.part1..c.part16都是字段。需要做个行转列
最佳回答
9527发表于 1年前
@9527:要再挂SYSCONSTRAINTS表,可以只使用trim(sysindexes.idxname)=trim(SYSCONSTRAINTS.idxname)条件
GBase用户17457发表于 1年前
@9527:目前我只有studio这一个工具,有没有连系统表和使用内置函数的办法操作啊,目前还无法进行服务的后台。。。
9527发表于 1年前
@GBase用户17457:sql查询的方法我在上面也说明了
GBase用户17457发表于 1年前
@9527:好的 我试下 非常感谢
9527发表于 1年前
@9527:行转列可以这样写
SELECT idxname,tabid,VALUES FROM sysindexes unpivot (VALUES FOR colno IN (part1,part2)) where tabid=101;