我不明白为什么这个查询(不正确)不会引起任何错误:
CREATE TABLE test (
ID,
VARIANT riri fifi lili,
PRIMARY KEY(ID, VARIANT ASC))
与他们的任何区别也是:
VARIANT TINYINT
VARIANT INTEGER
VARIANT BIGINT
VARIANT UNSIGNED INTEGER
答案 0 :(得分:2)
SQLite有一组受限制的列类型(列关联)(TEXT,NUMERIC,INTEGER,REAL和BLOB)。但是,它几乎可以接受任何列类型(请参阅下面的SQLite列类型的灵活/限制),并根据一组规则将其转换为一组受限制的列类型: -
因此riri fifi lili
的列类型为NUMERIC (直到最后一条规则)。
TINYINT
,INTEGER
,BIGINT
,UNSIGNED INTEGER
都会有一个列类型为INTEGER (因为它们都包含INT并符合第一条规则)< / em>的
CHARINT
将有一个列类型。
说一个列实际上可以包含任何类型,尽管列的类型(亲和力)在检索数据时可能会有细微的细微差别(请参阅下面的SQLite3中的数据类型)。 请注意,这是一个例外,它是rowid的别名。
可在此处找到更全面的答案How flexible/restricive are SQLite column types?