【发布时间】:2021-11-24 03:09:48
【问题描述】:
SQLite 的文档说:
UNIQUE 约束类似于 PRIMARY KEY 约束,不同之处在于单个表可以有任意数量的 UNIQUE 约束。
我想知道的是,如果我声明如下:
CREATE TABLE Example (
id INTEGER PRIMARY KEY UNIQUE);
SQLite 是创建两个索引还是一个?如果我不使用 rowid(即如果列是 id TEXT PRIMARY KEY UNIQUE),行为会有所不同吗?
我意识到最简单的做法就是删除UNIQUE,但我很好奇这会产生什么影响。
【问题讨论】:
-
FWIW,我发现这会创建一个
sqlite_autoindex,它会巧妙地改变正常行为。一开始似乎没什么区别,但后来我开始发现我无法通过主键随机选择某些行。我还不能确切地弄清楚这是为什么,所以最好能得到你的问题的正确答案。
标签: sqlite