2014-03-02 51 views
1

我使用SQLite Manager附加,我無法找出 這些數據類型之間的區別:的SQLite Manager數據類型

1)文本與文本(嚴格)

2) REAL與REAL(嚴格)

3)INTEGER與INTEGER(嚴格)

回答

3

SQLite的使用dynamic typing,這意味着它可以插入任何類型的值,而不管聲明的列類型。

當您選擇「strict」類型時,SQLite Manager將創建一個額外的CHECK約束來強制執行數據類型;是這樣的:

CREATE TABLE test (
    WithoutStrict INTEGER, 
    WithStrict INTEGER CHECK (typeof(WithStrict) = 'integer') 
); 

(這是不記錄任何地方)

+0

這是非常有用的信息,謝謝。但我並不真正瞭解,何時會有人聲明列類型,知道它不是嚴格的?我的意思是當我們聲明一個列類型時,它必須是嚴格的,對吧? –

+0

動態打字是一項功能。如果你真的想使用它,你不需要檢查。此外,SQLite管理器添加的檢查防止NULL值。 –

相關問題