如果列在Informix中具有主键约束,如何检查列是否可为空

时间:2014-07-26 14:50:36

标签: informix

在下面的链接中,位值的重要性为

http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqlr.doc/sqlrmst41.htm

Bit Value       Significance When Bit Is Set
0x0100          NULL values are not allowed

但是如果列具有主键约束,则该位不会被设置。为什么呢?

问题出现在informix v 11.0中,但不在>中。 = 1.7版本

1 个答案:

答案 0 :(得分:2)

我在Mac OS X 10.9.4上看到了使用Informix 11.70.FC6设置的位。

CREATE TABLE explicit_notnull(pk INTEGER NOT NULL PRIMARY KEY);
CREATE TABLE implicit_notnull(pk INTEGER PRIMARY KEY);
SELECT t.tabid, t.tabname, C.colno, C.colname, C.coltype, C.collength
  FROM SysTables AS t
  JOIN SysColumns AS C ON t.tabid = C.tabid
 WHERE t.tabname IN ('explicit_notnull', 'implicit_notnull');

输出:

133 explicit_notnull    1   pk  258 4
134 implicit_notnull    1   pk  258 4

两个表中都设置了NOT NULL位。

请指定您使用的Informix版本以及您正在使用的平台。并测试上面的脚本,并提供反例。