索引与约束语法不同

Different in index vs constraint syntax

创建索引或约束时,我对术语有点不清楚。例如:

什么时候用FOR,什么时候用ON?或者它们是两个不同的版本,还是一个已弃用?我还看到 ASSERTREQUIRE 的使用,但也不确定何时使用哪个。

如果您使用 CREATE INDEX,它不会强制唯一性。所以基本上是为了加快搜索速度。 CREATE CONSTRAINT 确实强制执行单一性。

当您执行 :schema 时,您会看到在这两种情况下都会创建一个索引,因为同样为了强制唯一性,快速查找很有帮助 :)

语法 CREATE CONTRAINT [constraint_name] ON ... ASSERT ... 似乎很旧。当前 documentation (v4.4) 中并未具体提及。但是,它在同一页面上被引用为 DROP CONSTRAINT 命令已弃用。

当前语法一致CREATE CONTRAINT [constraint_name] FOR ... REQUIRE ...