2012-12-09 20 views
3

我想弄清楚如何以編程方式確定給定表的列是否可以在Informix數據庫中爲空。我已經想出瞭如何獲得任何給定數據的列數據,但似乎並不像這些結果對我的目的有用;也就是說,似乎沒有指示列是否接受null的屬性。如何從Informix中的syscolumns檢索「空允許」屬性?

我需要加入另一個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中的東西......?

回答

4

報價from the manual

上頁列出的coltype代碼可以由位圖表示的列的以下特徵遞增。

 
Bit Value Significance When Bit Is Set 
0x0100  NULL values are not allowed
然後在下一頁

類似地,coltype值由256遞增,如果列不允許空值。要確定這些列的數據類型,請根據可能的coltype值從該值中減去256並評估餘數。例如,如果coltype值爲262,則減去256會留下餘數6,表示該列有SERIAL數據類型

+0

謝謝。我是Informix的新手,所以我想我應該使用RTFM。 :)我感謝你的迴應。 – asteri