定义“变体"SQLite 中的列类型?

2021-09-11 00:00:00 types sqlite

有没有办法在 SQLite 中定义包含 SQLite 支持的任何数据类型的列类型?

Is there a way to define a column type in SQLite that holds any datatype that SQLite supports?

我有无符号字符、有符号字符、无符号整数、有符号整数、UTF-8 字符和 blob,我想将它们填充到单个列中.

I have unsigned chars, signedchars, unsigned ints, signed ints, UTF-8 chars and blobs that I want to populate in a single column.

也欢迎参考任何文献.

推荐答案

只是不要在列声明中放类型,所以它没有亲和性

Just don't put a type in the column declaration, so it has NONE affinity

create table my_table(my_col);

SQLite 有一个独特的动态类型系统.它具有按值类型,但如果您指定列类型,SQLite 将确定类型关联(TEXT、NUMERIC、INTEGER、REAL、NONE).然后它尝试将每个值强制为该关联.

SQLite has a unique dynamic typing system. It has per-value typing, but if you specify a column type, SQLite will determine a type affinity (TEXT, NUMERIC, INTEGER, REAL, NONE). It then attempts to coerce each value to that affinity.

实际支持的类型有 NULL、INTEGER、REAL、TEXT、BLOB.有关详细信息,请参阅 SQLite 版本 3 中的数据类型.

The actual supported types are NULL, INTEGER, REAL, TEXT, BLOB. See Datatypes in SQLite Version 3 for more information.

相关文章