小编Kev*_*son的帖子

帮助使用 INSERT、ON CONFLICT 和 RETURNING 进行递归 CTE 查询

我正在尝试编写查询以将文件名插入下表 path

CREATE SEQUENCE path_id_seq;
CREATE TABLE path (
    id INTEGER PRIMARY KEY DEFAULT NEXTVAL('path_id_seq'),
    parent_id INTEGER,
    name TEXT NOT NULL);

CREATE UNIQUE INDEX path_parent_id_name_ix
    ON path (COALESCE(parent_id, 0), name);

ALTER TABLE path
    ADD CONSTRAINT ios_path_parent_id_fk
    FOREIGN KEY (parent_id) REFERENCES path (id)
    ON DELETE CASCADE
    DEFERRABLE INITIALLY DEFERRED;
Run Code Online (Sandbox Code Playgroud)

例如,给定文件名Assets/images/a.pngAssets/images/b.png我想插入以下行。

id | parent_id |       name        
----+-----------+-------------------
  1 |         ¤ | Assets
  2 |         1 | images
  3 |         2 | a.png
  4 |         2 | b.png …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.5

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

标签 统计

postgresql ×1

postgresql-9.5 ×1