zoukankan      html  css  js  c++  java
  • PostgreSQL之数据定义(一)继承

      PostgreSQL实现了表继承.capitals用于省会城市,cities用于非省会的城市.语法如下:

    CREATE TABLE cities (
        name            text,
        province        text,
        state           int     
    );
    
    CREATE TABLE capitals (
        level           float
    ) INHERITS (cities);

      增加初始化数据:

    insert into cities values('荆州','湖北',1);
    insert into cities values('荆门','湖北',1);
    insert into capitals values('武汉','湖北',1,1.5);

      根据不同方式查询结果(only 可以排除子表):

    select * from capitals;
    -------------------------
    武汉    湖北    1    1.5
    select * from cities;
    -----------------------
    荆州    湖北    1
    荆门    湖北    1
    武汉    湖北    1
    select * from only cities;
    ----------------------------
    荆州    湖北    1
    荆门    湖北    1

    警告

      继承特性的一个严肃的限制是索引(包括唯一约束)和外键约束值应用在单个表上而非它们的继承子女。在外键约束的引用端和被引用端都是这样。如果我们声明cities.nameUNIQUE或者PRIMARY KEY,这将不会阻止capitals表中拥有和cities中城市同名的行。而且这些重复的行将会默认显示在cities的查询中。事实上,capitals在默认情况下是根本不能拥有唯一约束的,并且因此能够包含多个同名的行。我们可以为capitals增加一个唯一约束,但这无法阻止相对于cities的重复。

  • 相关阅读:
    gulp-API介绍
    前端构建工具gulpjs的使用介绍及技巧(转载)
    atom插件之less-autocompile
    atom-安装插件
    gulp入门1
    edp 基于node.js和npm的前端开发平台
    (转)详解JavaScript模块化开发
    require.js
    thinkcmf5 iis+php重写配置
    thinkcmf5 模板版变量的加载过程 和 新增网站配置项怎么全局使用
  • 原文地址:https://www.cnblogs.com/ryjJava/p/14320644.html
Copyright © 2011-2022 走看看