5.5. �̳�

�����Ǵ����������׸������ÿ���ݵ��׸�������Ҳ�dz��С�ͨ�����׸���Ӧ�ôӳ��б��м̳й�����

CREATE TABLE cities (
    name            text,
    population      float,
    altitude        int     -- (��λ��Ӣ��)
);

CREATE TABLE capitals (
    state           char(2)
) INHERITS (cities);

����������£�һ���׸������ĸ������б��м̳��������ԣ����֣��˿��Լ����Σ��� ���׸���һ����������ԣ�state����ʾ�������ڵ��ݡ��� PostgreSQL � һ������Դ���������������м̳����ԣ�����һ����ѯ�ȿ�������һ�����е������У� Ҳ��������һ����������м���������������С�

ע��: �̳в��ʵ���������򿪻�ͼ��

���磬����IJ�ѯ�������к��� 500 Ӣ�����ϵ����г��е����֣��������׸���

SELECT name, altitude
    FROM cities
    WHERE altitude > 500;

�����أ�

   name    | altitude
-----------+----------
 Las Vegas |     2174
 Mariposa  |     1953
 Madison   |      845

��һ���棬���Ҫ�ҳ����������׸����ڵ����к��γ���500Ӣ�ߵij��У� ��ѯӦ���������ģ�

SELECT name, altitude
    FROM ONLY cities
    WHERE altitude > 500;

   name    | altitude
-----------+----------
 Las Vegas |     2174
 Mariposa  |     1953

����� cities ǰ��� "ONLY" ����ò�ѯӦ��ֻ�� cities ���в��Ҷ��������̳м������ cities �ı� ��������Ѿ����۹������� -- SELECT�� UPDATE �� DELETE -- ֧����� "ONLY" ���š�

����: ��ǰ�汾�� PostgreSQL �ȱʡ�Dz������ӱ� ���Ƿ������������׳���Ķ���Υ�� SQL:1999 ��׼���ھ��﷨���棬Ҫ�����ӱ�����Ҫ����һ�� * ���������档����

SELECT * from cities*;

����Ȼ����ͨ������*��ȷ������Ҫɨ���ӱ� Ҳ����ͨ��д "ONLY" ������ȷ������ɨ���ӱ� �������Ӱ汾 7.1 ��ʼ������Щ�������εı����ӵ�ȱʡ��Ϊ��ͬʱɨ�������ӱ� ����ǰ��ȱʡ�����෴��Ҫ����ϵ�ȱʡ��Ϊ�� ������ѡ�� SQL_Inheritance �رգ�Ҳ���ǡ�

SET SQL_Inheritance TO OFF;

��������� postgresql.conf �ļ������һ�С�

��ʱ���������֪��ij���а汾�����ĸ�����ÿ���������Ƕ���һ��ϵͳ���Խ� TABLEOID�������Ը�����Դ����˭��

SELECT c.tableoid, c.name, c.altitude
FROM cities c
WHERE c.altitude > 500;

�����أ�

 tableoid |   name    | altitude
----------+-----------+----------
   139793 | Las Vegas |     2174
   139793 | Mariposa  |     1953
   139798 | Madison   |      845

(������븴��������ӣ�����ܻ�õ���ͬ������ OID��) ͨ����pg_class��һ�����ӣ�����Կ���ʵ�ʵı����֡�

SELECT p.relname, c.name, c.altitude
FROM cities c, pg_class p
WHERE c.altitude > 500 and c.tableoid = p.oid;

�����أ�

 relname  |   name    | altitude
----------+-----------+----------
 cities   | Las Vegas |     2174
 cities   | Mariposa  |     1953
 capitals | Madison   |      845

һ������ԴӶ���һ�������м̳У�����������£���ӵ�����ĸ����Ƕ�����ֶεĺ� �������κ�Ϊ����ӱ���������ֶΣ���

�̳����Ե�һ�����صľ�����������������ΨһԼ���������Լ��ֻʩ���ڵ����� �����������ǵļ̳е��ӱ���һ�㲻�ܶ����ñ��DZ����ñ�����ʵ����ˣ�������������

��Щȱ��ܿ����ڽ����İ汾���޲�����ͬʱ��Ҳ��Ҫ����һ�£��̳��Ƿ����������������á�