2009-04-18 21 views
1

即時執行PRAGMA table_info在源碼分貝源碼列寬

PRAGMA table_info(my_table); 

而這些檢索到的列:

名 類型 NOTNULL dflt_value PK

我注意到有在(n)(var)char數據類型的情況下沒有列寬,是否有任何簡單的方法可以獲取這些信息?

注意:我知道在這些列中插入大數值沒有問題,但是,我想要訪問這個元數據。

回答

2

檢查查詢結果的內容時: PRAGMA table_info(my_table);

類型列包含

  • (n)的(VAR)炭爲寬度爲1
  • (n)的(VAR)炭(x)的列的與寬度的列大於1
1

http://www.sqlite.org/faq.html#q9

SQLite不執行一個VARCHAR的長度。你可以聲明一個VARCHAR(10),SQLite會很樂意讓你放500個字符。它將保持所有500個字符的完整 - 它從不截斷。

所以基本上,SQLite並沒有真正的長度在這些領域,它會高興地接受任何東西。

+0

是的,我知道它,但他在元數據上保留了列寬(我使用SQLite Expert和表格設計時,他保留了大小該欄) – 2009-04-18 22:29:34

1

您可以通過從sqlite_master表中進行選擇來訪問元數據