如何从 Informix 中的 syscolumns 检索“Is Null Allowed”属性?

Posted

技术标签:

【中文标题】如何从 Informix 中的 syscolumns 检索“Is Null Allowed”属性?【英文标题】:How to retrieve the "Is Null Allowed" property from syscolumns in Informix? 【发布时间】:2012-12-09 18:06:39 【问题描述】:

我试图弄清楚如何以编程方式确定给定表的列在 Informix 数据库中是否可以为空。我已经弄清楚如何获取任何给定数据的列数据,但这些结果似乎对我的目的没有用;也就是说,似乎没有一个属性来指示该列是否接受 null。

我是否需要加入另一个 sys__ 表或类似的东西?

我当前使用的查询:

SELECT *
FROM "informix".syscolumns
WHERE tabid = (SELECT tabid FROM "informix".systables WHERE tabname = 'myTable');

这将返回一个包含 colname、tabid、colno、coltype、collength、colmin、colmax、extended_id、seclabelid 和 colattr 的表。也许可空属性是 coltype 中的东西......?

【问题讨论】:

【参考方案1】:

引用from the manual:

上一页列出的coltype 代码可以通过位图递增,显示列的以下特征。

设置位时的位值意义 0x0100 NULL 值是不允许的

然后在下一页:

同样,如果列不允许 NULL 值,则 coltype 值增加 256。要确定此类列的数据类型,请从值中减去 256 并根据可能的 coltype 值计算余数。例如,如果 coltype 值为 262,则减去 256 得到余数 6,表示该列具有 SERIAL 数据类型

【讨论】:

谢谢。我是 Informix 的新手,所以我想我应该使用 RTFM。 :) 感谢您的回复。

以上是关于如何从 Informix 中的 syscolumns 检索“Is Null Allowed”属性?的主要内容,如果未能解决你的问题,请参考以下文章

Informix - 从日期中提取月份中的某一天,并且只选择奇数天

如何在 Informix 中打开和读取文件

Informix 中的数据库别名

如何在informix中查找父级的引用记录

如何删除在线表informix Db中的大量行

如何从 Perl 调用 Informix 存储过程?