小编Tra*_*vis的帖子

是否可以创建一个包含 ltree 字段的整个路径的唯一约束?

我使用 Postgres 中的 ltree 扩展来管理树的路径。我想确保名称字段对于树上的任何给定路径都是唯一的。我可以使用约束来完成此操作还是必须将其构建到查询中?

  demo table
------------------------------
| name (text) | path (ltree) |
------------------------------
| a           | 1            |
------------------------------
| b           | 1.2          |
------------------------------
| b           | 1.3          |
------------------------------
| b           | 1.2.4        | <-- this should fail on insert
------------------------------
Run Code Online (Sandbox Code Playgroud)

如果我必须将其构建到查询中,如果我使用 READ COMMITTED,这是否可能存在竞争条件?

CREATE TABLE demo (
    name text NOT null,
    path ltree NOT null
);
CREATE INDEX path_gist_idx ON demo USING GIST (path);
INSERT INTO demo (name, path)
SELECT 'a', '1'
WHERE NOT …
Run Code Online (Sandbox Code Playgroud)

postgresql ltree

5
推荐指数
1
解决办法
494
查看次数

标签 统计

ltree ×1

postgresql ×1