如何在SQLite数据库中存储动态类型值?

时间:2015-04-02 09:05:36

标签: sqlite dynamic-typing

SQLite FAQ指出SQLite uses dynamic typing。但是我找不到如何将动态类型值写入数据库的描述。从Oracle我知道SYS.ANYDATA类型,但我在SQLite文档中找不到类似的东西。

如何在SQLite数据库中存储动态类型值?

1 个答案:

答案 0 :(得分:3)

您不需要为列指定类型约束。

而不是像:

CREATE TABLE example (x ANY)

您只需要使用

CREATE TABLE example (x)

这会导致列的类型亲和力为NONE。

  

具有亲缘关系NONE的列不喜欢一个存储类而不是另一个存储类,并且不会尝试将数据从一个存储类强制转换为另一个存储类。

请参阅https://www.sqlite.org/datatype3.html

上的类型亲和力

而且,对于奖金,SYS.ANYDATA.getTypeName(X)的相应功能是typeof(X)

  

typeof(X)函数返回一个字符串,表示表达式X的数据类型:" null"," integer"," real",&# 34; text",或" blob"。

来自https://www.sqlite.org/lang_corefunc.html