zoukankan      html  css  js  c++  java
  • postgresql----继承表INHERITS PARENT TABLE

    使用INHERITS创建的新表会继承一个或多个父表,子表只会继承父表的表结构和NOT NULL,DEFAULT,CHECK三种约束,主键,外键和唯一键以及索引不会被继承,所以修改父表的结构(增删字段),NOT NULL,DEFAULT和CHECK约束会自动同步子表修改。

    示例1.

    create table tbl_inherits_parent(
    a int not null,
    b varchar(32) not null default 'Got u',
    c int check (c > 0),
    d date not null
    );
    
    test=# alter table tbl_inherits_parent add constraint pk_tbl_inherits_parent_a primary key(a);
    ALTER TABLE
    
    test=# alter table tbl_inherits_parent add constraint uk_tbl_inherits_parent_b_d unique (b,d);
    ALTER TABLE
    
    test=# create table tbl_inherits_partition() inherits (tbl_inherits_parent);
    CREATE TABLE
    test=# d tbl_inherits_partition 
                        Table "public.tbl_inherits_partition"
     Column |         Type          |                  Modifiers                  
    --------+-----------------------+---------------------------------------------
     a      | integer               | not null
     b      | character varying(32) | not null default 'Got u'::character varying
     c      | integer               | 
     d      | date                  | not null
    Check constraints:
        "tbl_inherits_parent_c_check" CHECK (c > 0)
    Inherits: tbl_inherits_parent

    示例2.

    test=# alter table tbl_inherits_parent add column e int not null default 0;
    ALTER TABLE
    test=# alter table tbl_inherits_parent alter column b set default 'try me';
    ALTER TABLE
    test=# d tbl_inherits_partition 
                         Table "public.tbl_inherits_partition"
     Column |         Type          |                  Modifiers                   
    --------+-----------------------+----------------------------------------------
     a      | integer               | not null
     b      | character varying(32) | not null default 'try me'::character varying
     c      | integer               | 
     d      | date                  | not null
     e      | integer               | not null default 0
    Check constraints:
        "tbl_inherits_parent_c_check" CHECK (c > 0)
    Inherits: tbl_inherits_parent

    示例3.

    除继承父表之外,创建子表时可以增加自己的字段

    test=# create table tbl_inherits_partition1(f int) inherits (tbl_inherits_parent);
    CREATE TABLE
    test=# d tbl_inherits_partition1 
                        Table "public.tbl_inherits_partition1"
     Column |         Type          |                  Modifiers                   
    --------+-----------------------+----------------------------------------------
     a      | integer               | not null
     b      | character varying(32) | not null default 'try me'::character varying
     c      | integer               | 
     d      | date                  | not null
     e      | integer               | not null default 0
     f      | integer               | 
    Check constraints:
        "tbl_inherits_parent_c_check" CHECK (c > 0)
    Inherits: tbl_inherits_parent

    示例4.解除继承

    test=# alter table tbl_inherits_partition1 no inherit tbl_inherits_parent;
    ALTER TABLE
    test=# d tbl_inherits_partition1 
                        Table "public.tbl_inherits_partition1"
     Column |         Type          |                  Modifiers                   
    --------+-----------------------+----------------------------------------------
     a      | integer               | not null
     b      | character varying(32) | not null default 'try me'::character varying
     c      | integer               | 
     d      | date                  | not null
     e      | integer               | not null default 0
     f      | integer               | 
    Check constraints:
        "tbl_inherits_parent_c_check" CHECK (c > 0)
  • 相关阅读:
    Java中级面试题及答案整理
    深入解析Java AtomicInteger原子类型
    无需Java代码通过JHipster生成有安全验证的微服务应用
    浅谈java中"&&"和"&"的区别
    Selenium使用总结(Java版本)
    愿你走出半生,归来仍是Java Parser
    通过这些示例快速学习Java lambda语法
    PhotoShop CS6实现照片背景虚化效果
    PhotoShop CS6学习笔记
    Word 2010之简单图文混排
  • 原文地址:https://www.cnblogs.com/alianbog/p/5605129.html
Copyright © 2011-2022 走看看