开发者社区> 问答> 正文

5张表的总数据存入一张表,求方法!

5张表,A,B,C,D,E
结构都都差不多
id,name, xx_id;XX代表关联的表名称 例如A_ID.
现在要全部存入 category表
表结构如下:
id,name,parentid,path;
1,名称,上级ID(0),路径(0,1,)
求方法

展开
收起
落地花开啦 2016-02-08 18:48:44 1904 0
1 条回答
写回答
取消 提交回答
  • 公益是一辈子的事, I am digoal, just do it. 阿里云数据库团队, 擅长PolarDB, PostgreSQL, DuckDB, ADB等, 长期致力于推动开源数据库技术、生态在中国的发展与开源产业人才培养. 曾荣获阿里巴巴麒麟布道师称号、2018届OSCAR开源尖峰人物.

    HI, 如果是PostgreSQL, 可以使用表继承来解决您的问题:
    您还是使用原来的表,只需要把继承关系建立起来,不需要数据重新导入。
    插入父表就会自动查询子表。

    digoal=# create table t1(id int, name text, t1_id int);
    CREATE TABLE
    digoal=# create table t2(id int, name text, t2_id int);
    CREATE TABLE
    
    digoal=# insert into t1 values (1,'t1',1);
    INSERT 0 1
    Time: 0.497 ms
    digoal=# insert into t2 values (1,'t2',2);
    INSERT 0 1
    Time: 0.493 ms
    
    digoal=# alter table t1 rename t1_id to xid;
    ALTER TABLE
    Time: 0.403 ms
    digoal=# alter table t2 rename t2_id to xid;
    ALTER TABLE
    Time: 0.471 ms
    
    digoal=# alter table t1 inherit p;
    ALTER TABLE
    Time: 0.825 ms
    digoal=# alter table t2 inherit p;
    ALTER TABLE
    Time: 0.411 ms
    digoal=# select * from p;
     id | name | xid 
    ----+------+-----
      1 | t1   |   1
      1 | t2   |   2
    (2 rows)
    2019-07-17 18:39:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载