关于PostgreSQL的表继承

test=# CREATE TABLE cities (  -- 父表

test(# name        text,

test(# population float,

test(#  altitude     int

test(# );

CREATE TABLE

test=# CREATE TABLE capitals ( -- 子表

test(# state      char(2)

test(# ) INHERITS (cities);

CREATE TABLE

test=# select * from cities;

 name | population | altitude

------+------------+----------

(0 rows)

 

test=# select * from capitals;

 name | population | altitude | state

------+------------+----------+-------

(0 rows)



向父表插入2条数据
test=# INSERT INTO cities values('Las Vegas', 1.53, 2174);
INSERT 0 1
test=# INSERT INTO cities values('Mariposa',3.30,1953);
INSERT 0 1


向子表里也插一条
test=# INSERT INTO capitals values('Madison',4.34,845,'WI');
INSERT 0 1

向父表查询的时候 会把子表中的数据也一起Load出来
test=# SELECT name, altitude FROM cities WHERE altitude > 500;
   name    | altitude
-----------+----------
 Las Vegas |     2174
 Mariposa  |     1953
 Madison   |      845
(3 rows)

但是单查子表的时候 只会出现一条数据
test=# SELECT name, altitude FROM capitals WHERE altitude > 500;
  name   | altitude
---------+----------
 Madison |      845
(1 row)

晚上回去模拟多一点数据 看一下到底会有什么影响  



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值