为什么这会在sqllite3下创建表SQL工作



我不明白为什么此查询(这是不正确的(不会引起任何错误:

CREATE TABLE test (
  ID, 
  VARIANT riri fifi lili,
  PRIMARY KEY(ID, VARIANT ASC))

也是他们与以下不同的不同之处。

  VARIANT TINYINT
  VARIANT INTEGER
  VARIANT BIGINT
  VARIANT UNSIGNED INTEGER

sqlite具有限制的列类型(列亲和力((文本,数字,整数,真实和斑点(。但是,它几乎将任何内容都视为列类型(请参阅下面的SQLite列类型的灵活/限制性( ,并根据一组规则将其转换为一组有限的列类型集: -

  • 如果列类型包含int,则将其转换为整数。
  • 如果列类型包含char,clob或文本,则将其转换为文本。
  • 如果列类型包含斑点,则将其转换为斑点。
  • 如果列类型包含真实的,floa或疑问,则将其转换为真实。
  • 否则它将其转换为数字。

因此,riri fifi lili将具有数字的列类型(删除到最后一个规则(

TINYINTINTEGERBIGINTUNSIGNED INTEGER都将具有整数的列类型(因为它们都包含int并符合第一规则(

CHARINT如果整数(符合第一规则(,则具有列类型。

说,尽管列的类型(亲和力(在检索数据(请参阅下面的sqlite3中的datatypes(时,列实际上可以包含任何类型。请注意,这是一个列是Rowid的列。

在这里可以找到更全面的答案,sqlite列类型的灵活性/修复?

您也可能希望在SQLITE版本3

中查看数据类型

最新更新