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都是字段。需要做个行转列
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;
SELECT idxname,tabid,VALUES FROM sysindexes unpivot (VALUES FOR colno IN (part1,part2)) where tabid=101;
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25052
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526