xra*_*alf 2 sqlite string types
我创建了一个表如下:
create table employers (
id integer primary key,
name string,
surname string,
description string
);
Run Code Online (Sandbox Code Playgroud)
我注意到这里是string
不是数据类型之间,我应该用别的东西代替它?它是其他一些数据类型的别名吗?此字符串可包含的最大字符数是多少?
我用过string
,它没有任何问题.我只感兴趣,我可以使用字符串.这是别的吗?这种类型的可能性有哪些?
谢谢
tof*_*tim 13
您想使用TEXT我们使用它需要的任何东西来保存您的数据.
CREATE TABLE Employers (
id INTEGER PRIMARY KEY,
name TEXT,
surname TEXT,
description TEXT
);
Run Code Online (Sandbox Code Playgroud)
请参阅http://www.sqlite.org/datatype3.html并注意:
SQLite使用更通用的动态类型系统.在SQLite中,值的数据类型与值本身相关联,而不是与其容器相关联.SQLite的动态类型系统向后兼容其他数据库引擎的更常见的静态类型系统,因为在静态类型数据库上工作的SQL语句应该在SQLite中以相同的方式工作.但是,SQLite中的动态类型允许它执行传统的刚性类型数据库中无法实现的操作.
注意到:
SQLite不对字符串,BLOB或数值的长度施加任何长度限制(除了大的全局SQLITE_MAX_LENGTH限制).
最后:
字符串或BLOB的最大长度
字符串中的最大字节数或SQLite中的BLOB由预处理器宏SQLITE_MAX_LENGTH定义.此宏的默认值为10亿(十亿或1,000,000,000).您可以使用命令行选项在编译时提高或降低此值,如下所示:
-DSQLITE_MAX_LENGTH = 123456789当前实现仅支持长度为231-1或2147483647的字符串或BLOB长度.而在此之前,某些内置函数(如hex())可能会失败.在安全敏感的应用程序中,最好不要尝试增加最大字符串和blob长度.事实上,如果可能的话,你最好将最大字符串和blob长度降低到几百万的范围内.
在SQLite的INSERT和SELECT处理过程中,数据库中每行的完整内容被编码为单个BLOB.因此,SQLITE_MAX_LENGTH参数还确定一行中的最大字节数.
可以使用sqlite3_limit(db,SQLITE_LIMIT_LENGTH,size)接口在运行时降低最大字符串或BLOB长度.
归档时间: |
|
查看次数: |
10521 次 |
最近记录: |