Sqlite确保输入数据的长度正确

时间:2013-06-24 20:57:25

标签: database types sqlite precision

asked a question我得到了一个很好的答案,但带来了许多其他问题。

说我创建了一个表:

 CREATE TABLE test(my_id INTEGER(2));

如何确保在那里插入数据(或从csv进行任意修改)时,该字段恰好是INTEGER(2),而不是INTEGER(1)或其他任何动态延伸到...的字段? 如果我不能没有内存/性能问题吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

从CSV文件导入的所有值都是字符串(但type affinity可能会更改)。

要确保值在特定范围内,请添加显式约束:

CREATE TABLE test(
    my_id INTEGER CHECK (my_id BETWEEN 0 AND 100)
);

无论它们是如何分解的,整数值都存储在1,2,3,4,6或8个字节中,具体取决于值的大小。