zoukankan      html  css  js  c++  java
  • Mysql-外键foreign key

    1、定义:如果一张表中有一个字段指向另一张表的主键,就子表中将该主键字段叫做外键。

        一张表中可存在多个外键

    2、外键的作用

      保持数据的一致性、完整性

      a、对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败。

      b、对父表的作用:对父表的主键字段进行删除和更改时,如果对应的主键在子表中被引用,操作就会失败

    3、外键的定制作用----三种约束模式:

      district:严格模式(默认), 父表不能删除或更新一个被子表引用的记录。

      cascade:级联模式, 父表操作后,子表关联的数据也跟着一起操作。

      set null:置空模式,前提外键字段允许为NLL,  父表操作后,子表对应的字段被置空

    4、使用外键的前提:

      1. 表储存引擎必须是innodb,否则创建的外键无约束效果。

      2. 外键的列类型必须与父表的主键类型完全一致。

      3. 外键的名字不能重复。

      4. 已经存在数据的字段被设为外键时,必须保证字段中的数据与父表的主键数据对应起来。

    5、新增外键

      a、建表时添加

    CREATE TABLE my_tab1(
            id int PRIMARY KEY auto_increment,
            name varchar(10) not null,
            class int,
            FOREIGN KEY(class) REFERENCES my_tab2(主键字段名)
    )charset utf8      

      b、在建好的表中添加

    ALTER  TABLE my_tab1 ADD [constraint  外键名] FOREIGN KEY(外键字段名)    REFERENCES my_tab2(主键字段名)

    6、删除外键

    ALERT TABLE my_tab DROP  FOREIGN KEY 外键名称

      

  • 相关阅读:
    the core or essence of a computer
    HEXADECIMAL NOTATION is Syntactic_sugar.
    Converting from Decimal Notation to Binary Notation for Fractions
    convert from base 10 to base 2
    MYSQL PASSWORD()
    Environment Variables
    Why Stored Procedures?
    delimiter
    page fault rate
    Segmentation
  • 原文地址:https://www.cnblogs.com/zwesy/p/9096287.html
Copyright © 2011-2022 走看看