1

出于某种原因,在搜索数据类型时,出现了关于无类型的 SQLite 2 文档SQLite 2 文档,我阅读了关于无类型的信息。后来我意识到第 2 版的最后一个版本是在 2004 年。然后我搜索了第 3 版的文档SQLite 3 文档并意识到“无类型”这个词没有出现,但似乎该功能在第 3 版中得到了维护。有吗现在将术语从“无类型”转换为“动态类型”?

另外,我尝试在测试数据库中更改主键 [版本 2 的文档说我不能],我能够更改它。

表架构 更改主键

那么 SQLite 3 是否不是无类型的,可以在 SQLite3 中更改主键吗?


编辑:感谢 Varro,我尝试了以下操作,并且能够看到我无法将字符串作为 id 输入。我还尝试插入一个额外的行,自动添加的 id 是 11 而不是 2,即使编号从 1 开始但更改为 10。所以似乎 SQLite 在选择下一行应该编号的内容之前检查前一个整数。

尝试 id PRIMARY KEY 的字符串

4

1 回答 1

1

通常(除非显式约束),您可以将任何类型的值插入 SQLite 中的任何列,但一个值得注意的例外是如果您声明一个 column INTEGER PRIMARY KEY,这意味着它是内部(整数)rowid 的别名。请注意,您在上面的示例中更改了,但没有更改主键的类型。这是合法的(只要新值是唯一的),但将其更改为例如 'abc' 是不合法的。

于 2017-07-29T17:44:06.750 回答