MYSQL外键(foreign key)语法,添加/删除外键,级联动作restrict/cascade

MYSQL外键(foreign key)语法,添加/删除外键,级联动作restrict/cascade

外键(foreign key)

  1、定义 :让当前表字段的值在另一个表的范围内选择

  2、语法

    foreign key(参考字段名)

    references 主表(被参考字段名)

    on delete 级联动作

    on update 级联动作

  3、使用规则

    1、主表、从表字段数据类型要一致

    2、主表被参考字段 :主键

  4、示例

    表1、缴费信息表(财务)

      id  姓名    班级   缴费金额

       1  唐伯虎  AID06     300

       2  点秋香  AID06     260

       3  祝枝山  AID06     250


    表2、学生信息表(班主任)

      id   姓名   缴费金额

       1   唐伯虎   300

       2   点秋香   260

       3 XXXXXXXXXXXXXXXXX

    1、创建表 

     表1(主表):

       create table jftab(

       id int primary key,

       name varchar(15),

       class char(5),

       money int

       );


       insert into jftab values

       (1,"唐伯虎","AID06",300),

       (2,"点秋香","AID06",260),

       (3,"祝枝山","AID06",250);

     表2(从表)、

       create table bjtab(

       stu_id int,

       name varchar(15),

       money int,

       foreign key(stu_id) references jftab(id)

       on delete cascade

       on update cascade

       );

       insert into bjtab values

       (1,"唐伯虎",300),(2,"点秋香",260);

  5、删除外键

    alter table 表名 drop foreign key 外键名;

    外键名 :show create table 表名;

  6、级联动作

    1、cascade 

      数据级联删除、更新(参考字段)

    2、restrict(默认)

      从表有相关联记录,不允许主表操作

    3、set null

      主表删除、更新,从表相关联记录字段值为NULL

  7、已有表添加外键

    alter table 表名 add 

    foreign key(参考字段) references 主表(被参考字段)

    on delete ...

    on update ...


最后编辑于:2019/10/06作者: 牛逼PHP

发表评论