xuanxi 发表于 2016-11-20 08:39:11

关于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)



晚上回去模拟多一点数据 看一下到底会有什么影响  
页: [1]
查看完整版本: 关于PostgreSQL的表继承