zoukankan      html  css  js  c++  java
  • 06约束

    1、外键约束

    1.1添加外键

    什么是约束:约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性.

    ALTER TABLE person ADD CONSTRAINT fk_id FOREIGN KEY(dept_id) REFERENCES dept(did);
    #一张表可以对应多张表

    定义外键的条件:

    (1)外键对应的字段数据类型保持一致,且被关联的字段(即references指定的另外一个表的字段),必须保证唯一

    (2)所有tables的存储引擎必须是InnoDB类型.

    (3)外键的约束4种类型: 1.RESTRICT 2. NO ACTION 3.CASCADE 4.SET NULL

    RESTRICT
    同no action, 都是立即检查外键约束
    
    NO ACTION
    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  
    
    CASCADE
    在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
    
    SET NULL
    在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)  
    
    约束类型详解

    (4)建议:1.如果需要外键约束,最好创建表同时创建外键约束.

           2.如果需要设置级联关系,删除时最好设置为 SET NULL.

    注意事项:

      1、主表的数据不能随便删。

      2、插入数据时,先插入主表中的数据,再插入从表中的数据

      3、删除数据时,先删除从表中的数据,再删除主表中的数据

    1.2删除外键

    ALTER TABLE person DROP FOREIGN KEY fk_id;

    2、 主键约束

      主键约束与唯一索引的区别:主键在一张表中只能有一个,而唯一索引可以有多个

    3、唯一索引

    CREATE TABLE t4(
        id INT(10) NOT NULL,
        named VARCHAR(255),
        UNIQUE id_name(id,named)
    );
    #添加
    #ALTER TABLE t4 UNIQUE id_name(id,named);
    #删除唯一约束
    #ALTER TABLE t4 DROP INDEX id_name;

    它规定一张表中指定的一列的值必须不能有重复值,即这一列每个值都是唯一的。

    4、默认值约束

    CREATE TABLE t5(
        id INT(10) NOT NULL PRIMARY KEY,
        named VARCHAR(255) DEFAULT '张三'
    );
    
    INSERT INTO t5 VALUES(3,DEFAULT),(4,DEFAULT);
  • 相关阅读:
    php __clone实现
    php 魔术方法 __autoload()
    ubuntu 下telnet 操纵memcache 实现
    ubuntu下 使用AB做压力测试
    github 使用方法总结 还有一部分不太懂
    ubuntu 下 github 使用方法 以及异常修改
    ubuntu 14.0 下github 配置
    postgres安装 以及修改postgres 密码
    ubuntu 14.下 netbeans 自体锯齿 消除
    js实现多张图片每隔一秒换一张图片
  • 原文地址:https://www.cnblogs.com/start20180703/p/10352683.html
Copyright © 2011-2022 走看看