SQLite nvarchar(100)字段可以接受200个char字段。为什么?

时间:2014-12-30 19:42:01

标签: sqlite

我有一个表格,其字段定义为nvarchar(100)。

我刚注意到如果插入了一条新记录(例如一个200字符串值),查询就可以正常工作,而不会抛出任何异常。

是SQLite'功能'?

将SQLite 1.0.94与Visual Studio 2010 / C#和SQLite v3 dabatabse一起使用。

2 个答案:

答案 0 :(得分:2)

SQLite没有识别您在声明中指定的限制,因此未强制执行。

为了强制执行,您可能需要这样的声明:

CREATE TABLE t (f TEXT CHECK(LENGTH(f)<101));

因此无法插入超过100个字符的文字。

答案 1 :(得分:1)

SQLite有一个无限的TEXT数据类型。请参阅文档:

http://www.sqlite.org/datatype3.html#affname

  

请注意类型后面的括号中的数字参数   SQLite忽略了名称(例如:&#34; VARCHAR(255)&#34;) - SQLite没有   对字符串,BLOB或数字的长度施加任何长度限制   值。