【发布时间】:2011-01-30 04:51:21
【问题描述】:
与其他风格的 SQL 相比,SQLite3 使用动态类型而不是静态类型。 SQLite website 内容如下:
大多数 SQL 数据库引擎(据我们所知,除 SQLite 之外的所有 SQL 数据库引擎)都使用静态、严格的类型。对于静态类型,一个值的数据类型由它的容器决定 - 存储该值的特定列。
SQLite 使用更通用的动态类型系统。在 SQLite 中,值的数据类型与值本身相关联,而不是与其容器相关联。
在我看来,这正是您不想要的,因为它可以让您将字符串存储在整数列中。
页面继续:
...SQLite 中的动态类型允许它完成传统刚性类型数据库中无法完成的事情。
我有两个问题:
- 用例问题:SQLite3 的动态类型有哪些好处?
- 历史/设计问题:使用动态类型实现 SQLite 的动机是什么?
【问题讨论】:
-
我的观察是 sqlite3 更依赖于连接它更智能的软件,例如指望它不在字符串列中存储整数,而不是自己提供结构。
-
这种类型的讨论问题通常比社区 Wiki 更好,但总的来说,对于 SO 的格式来说,这是一个糟糕的问题。尝试对每个问题提出 一个 问题,最好是具体的而不是开放式的。 stackoverflow.com/faq
标签: database sqlite dynamic-typing