2014-03-02 28 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值。 –

相关问题