zoukankan      html  css  js  c++  java
  • MySQL建立外键(Foreign Key)

    如果在最初建立表的时候就建立外键这样一般不会有什么问题,顺便说一下建立外键的时候,需要注意的地方。

       cascade方式
    在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
       set null方式
    在父表上update/delete记录时,将子表上匹配记录的列设为null
    要注意子表的外键列不能为not null  
       No action方式
    如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  
       Restrict方式
    同no action, 都是立即检查外键约束
       Set default方式

    父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别。

    建立外键的命令:

    alter table current_table_name add foreign key fk_name(stockid) references table_name(stockid)
    current_table_name 为表名, fk_name 为外键名 第一个括号里填写外键列名, table_name为被引用的表的名子,第二个括号里是写被外键关联的列名

    当表中有一定的数据的时候,这个时候如果要建立外键(foreign key)要注意数据的一致性,否则会出现错误。

    尽量不要使用:

    SET FOREIGN_KEY_CHECKS = 0;

    关闭了外键约束,此时外键也就失去了意义,可能会导致数据不一致的问题出现,出现僵尸数据。

  • 相关阅读:
    1.Python进阶 词典dict
    10.Python基础 反过头来看看
    test
    地图添加标记物 并添加点击弹出框
    百度地图里面添加覆盖物的事件显示最后一个?
    css3之animation制作闪烁文字效果 转
    ajax beforeSend中无效果
    jquery 中 $('div','li')是什么意思?
    SQL 单引号转义
    jQuery 遍历
  • 原文地址:https://www.cnblogs.com/feiyafeiblog/p/7120989.html
Copyright © 2011-2022 走看看