zoukankan      html  css  js  c++  java
  • SQL

    Summary

    • 关于约束的一些记录。
    • 非主键字段被设置成外键的时候提示:[Code: , SQL State: 42830] ERROR: there is no unique constraint matching given keys for referenced table "t1"

    Demo

    // 创建 author 表
    create table author (id INTEGER, name char(255));
    // 唯一主键才能被添加成外键。
    alter table author add primary key(id);
    // 创建 book 表
    create table book (id INTEGER, author_id INTEGER, name char(255));
    
    // 第一,可以直接删除 Book 表记录,Author 表数据不会受到影响。
    // 第二,删除 Author 表记录,串联删除 Book 表数据。
    alter table book add foreign key(author_id) references author(id) on delete cascade;
    
    // 删除约束
    alter table book drop constraint 'book_author_id_fkey';
    

    Action

    • Restrict 禁止删除被引用的行 (不能将约束检查推迟到事物的晚些时候)
    • No Action 如果存在任何引用行,则抛出错误,如果不声明任何行为则No Action就是缺省行为 (允许约束检查推迟到事物的晚些时候)
    • Cascade 在删除一个被引用的行时,引用他的行被自动删除
    • Set Null (外键上才有) 删除被引用行时,引用他的字段设置为NULL
    • Set Default (外键上才有) 删除被引用行时,引用他的字段被设置为缺省值

    注意:一个动作声明为Set Default 但是缺省值并不能满足外键,那么动作就会失败

  • 相关阅读:
    Mapper接口开发规范
    Mybatis介绍
    PostGreSQL(十一)PostGIS-其他函数
    PostGreSQL(十)PostGIS-最近领域搜索
    PostGreSQL(九)PostGIS-几何图形的相等
    PostGreSQL(八)PostGIS-图形有效性和简单性
    PostGreSQL(七)PostGIS-几何图形创建函数
    PostGreSQL(六)PostGIS-空间连接和空间索引
    代码规范(五)
    总结
  • 原文地址:https://www.cnblogs.com/duchaoqun/p/12851823.html
Copyright © 2011-2022 走看看