1

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

假设我创建了一个表:

 CREATE TABLE test(my_id INTEGER(2));

我如何确保在其中插入数据(或从 csv 实际导入)时,该字段完全是 INTEGER(2),而不是 INTEGER(1) 或它会动态延伸到的任何其他内容..?如果我不能这样做,是否没有内存/性能问题?

谢谢!

4

1 回答 1

2

从 CSV 文件导入的所有值都是字符串(但类型相似性可能会改变)。

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

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

不管它们是如何声明的,整数值都存储在 1、2、3、4、6 或 8 个字节中,仅取决于值的大小。

于 2013-06-25T06:07:06.183 回答