我问了一个问题,我得到了很好的答案,但也带来了许多其他问题。
假设我创建了一个表:
CREATE TABLE test(my_id INTEGER(2));
我如何确保在其中插入数据(或从 csv 实际导入)时,该字段完全是 INTEGER(2),而不是 INTEGER(1) 或它会动态延伸到的任何其他内容..?如果我不能这样做,是否没有内存/性能问题?
谢谢!
从 CSV 文件导入的所有值都是字符串(但类型相似性可能会改变)。
要确保值在某个范围内,请添加显式约束:
CREATE TABLE test(
my_id INTEGER CHECK (my_id BETWEEN 0 AND 100)
);
不管它们是如何声明的,整数值都存储在 1、2、3、4、6 或 8 个字节中,仅取决于值的大小。