您的位置:首页 > 数据库 > MySQL

关于使用可视化图形工具navicat for mysql来创建外键的步骤

2018-03-18 11:48 981 查看
    主键:主键是一张表的唯一标识符,应该让其处于不可被外界更改状态。
     且主键对于用户来说是无意义的,为了明确这一点,我们应该让主键处于一种幽魂状态,即主键存在,但其他人并不感觉到它存在。    
    外键:创建外键是为了在数据表之间建立联系。一个外键一般而言在他自身的主表中是唯一的,我这里经常就使用主表的主键作为从表的外键。

    何谓主表,从表?

    user表中有字段    

            id            int            11            not null        主键    

            name      varchar    20            not null        普通字段

    message表中有字段

            id               int            11            not null        主键    

            content      varchar    20            not null        普通字段
            userId        int            11            null               外键

    上方有两张表,其中user表就是主表,而message表即是从表。

    添加外键的时候应该注意如下规则:
   1、添加外键的数据库引擎必须为InnoDB   2、关联的字段数据类型必须一样,如上方两张表中的关联都是int类型   3、知道表与表之间的主从关系,需要在从表中添加外键   4、从表中的关联字段数据,在主表中需要是唯一的,我这里一般就使用主表的主键   5、创建外键的时候,需要先建立索引。索引的目的是为了更快地进行搜寻。当然,如果没有在主表里面建立索引,那么可能在从表中创建外键的时候出现错误。
   6、如果有多张表需要创建外键,那么外键的名字也必须是唯一的,且不区分大小写。
 使用navicat for mysql创建外键时,需要选择删除更新的关系:


   .cascade方式
    在父表上update/delete记录时,同步update/delete掉子表的匹配记录 

   . set null方式
    在父表上update/delete记录时,将子表上匹配记录的列设为null
    要注意子表的外键列不能为not null  

   . No action方式
    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  

   . Restrict方式
    同no action, 都是立即检查外键约束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  外键 mysql